/**
 * Deploy ignore patterns for monorepo staging.
 *
 * Loads `.agentuityignore` (gitignore syntax) from the monorepo root
 * and target project directory, then matches paths relative to the
 * monorepo root. Built-in safety exclusions always apply and cannot
 * be re-included with negation.
 */
/** Filename for user-authored deploy exclusion patterns. */
export declare const AGENTUITY_IGNORE_FILENAME = ".agentuityignore";
/** Why a path was excluded from monorepo staging (for trace logging). */
export type DeployIgnoreReason = 'built-in' | 'agentuityignore';
export interface DeployIgnoreMatcher {
    /**
     * Classify a monorepo-root-relative path, or return null when kept.
     * Directories may be tested with or without a trailing slash.
     */
    classify(relPath: string, isDirectory?: boolean): DeployIgnoreReason | null;
    /** User-authored patterns only (excludes built-in safety patterns). */
    userPatterns: readonly string[];
    /** Absolute paths of `.agentuityignore` files that contributed patterns. */
    sources: readonly string[];
}
/** Convert an OS-native path to posix form (required by `ignore`). */
export declare function toPosixPath(p: string): string;
/**
 * Parse `.agentuityignore` file text into non-empty, non-comment lines.
 */
export declare function parseAgentuityIgnore(content: string): string[];
/**
 * Read and parse a single `.agentuityignore` file. Empty when missing.
 */
export declare function readAgentuityIgnoreFile(filePath: string): string[];
/**
 * Collect user patterns from known locations.
 *
 * Search order (later files append; gitignore last-match wins):
 *   1. `<monorepoRoot>/.agentuityignore`
 *   2. `<projectDir>/.agentuityignore` (when different from the root)
 *
 * All patterns are matched against paths relative to the monorepo root.
 */
export declare function loadDeployIgnorePatterns(monorepoRoot: string, projectDir?: string): {
    userPatterns: string[];
    sources: string[];
};
export interface CreateDeployIgnoreMatcherOptions {
    /** User-authored patterns (from `.agentuityignore`). */
    userPatterns?: readonly string[];
    /** Absolute paths of files that contributed user patterns. */
    sources?: readonly string[];
    /**
     * Built-in gitignore patterns. Defaults to {@link ALWAYS_IGNORE_PATTERNS}.
     * Rarely overridden (tests).
     */
    builtInPatterns?: readonly string[];
}
/**
 * Build a matcher with an explicit built-in vs user split.
 */
export declare function createDeployIgnoreMatcher(options?: CreateDeployIgnoreMatcherOptions): DeployIgnoreMatcher;
/** Load `.agentuityignore` files (if any) and return a ready matcher. */
export declare function loadDeployIgnoreMatcher(monorepoRoot: string, projectDir?: string): DeployIgnoreMatcher;
/**
 * Paths that must always stage for a monorepo deploy of `subpath`, even
 * when a user `.agentuityignore` pattern would match (e.g. bare `dist/`
 * matching `apps/web/dist`). Built-in safety skips (node_modules, .env)
 * still win over protection.
 */
export interface ProtectedStagingPaths {
    /** Posix subpath of the target package (e.g. `apps/web`). */
    subpath: string;
    /**
     * Framework build output relative to the package (e.g. `dist`,
     * `.output`). Empty / `.` means no dedicated build-output tree.
     */
    buildOutput: string;
}
/**
 * Absolute posix path of the package build output under the monorepo root.
 * Returns null when there is no dedicated build-output directory.
 */
export declare function resolveProtectedBuildOutputPath(subpath: string, buildOutput: string): string | null;
/**
 * True when `relPosix` (monorepo-root-relative) must not be dropped by
 * user ignore patterns.
 */
export declare function isProtectedStagingPath(relPosix: string, protect: ProtectedStagingPaths): boolean;
/**
 * User patterns that are likely to match the target package's build
 * output directory name at any depth (bare dist, dist/, or ** /dist).
 */
export declare function findRiskyBuildOutputIgnorePatterns(userPatterns: readonly string[], buildOutput: string): string[];
//# sourceMappingURL=deploy-ignore.d.ts.map