/**
 * Monorepo deploy staging: mirror the workspace root into the output
 * directory, applying `.agentuityignore` and built-in safety exclusions.
 */
import type { Logger } from '@agentuity/core';
import { type DeployIgnoreMatcher } from '../deploy-ignore.ts';
import type { MonorepoContext } from '../detect/monorepo.ts';
/** Logger subset used while staging; `trace`/`warn` optional for test fixtures. */
export type MonorepoStageLogger = Pick<Logger, 'debug'> & Partial<Pick<Logger, 'trace' | 'warn'>>;
export interface CopyMonorepoTreeOptions {
    /**
     * Optional pre-built ignore matcher. When omitted, patterns are
     * loaded from `.agentuityignore` at the monorepo root (and the
     * target project dir when provided via `projectDir`).
     */
    ignore?: DeployIgnoreMatcher;
    /**
     * Absolute path to the target subpackage. Used only to discover a
     * project-local `.agentuityignore` when `ignore` is not passed.
     */
    projectDir?: string;
    /**
     * Framework build output dir relative to the target package
     * (e.g. `dist`, `.output`). Used to protect that tree from bare
     * ignore patterns like `dist/` that would match at any depth.
     */
    buildOutput?: string;
}
/** Stats from a monorepo staging copy (directory hits count as one path). */
export interface CopyMonorepoTreeResult {
    skippedUser: number;
    skippedBuiltIn: number;
    /** User ignore hits overridden because the path is required to deploy. */
    protectedKept: number;
    userPatternCount: number;
    ignoreSources: readonly string[];
}
/**
 * Recursively copy the monorepo tree from `monorepo.root` into
 * `outputDir`, wiping any previous staging contents first.
 */
export declare function copyMonorepoTree(monorepo: MonorepoContext, outputDir: string, logger: MonorepoStageLogger, options?: CopyMonorepoTreeOptions): CopyMonorepoTreeResult;
/** Human-readable build-log lines for a monorepo staging result. */
export declare function formatMonorepoStageLogs(rootLabel: string, stats: CopyMonorepoTreeResult): string[];
//# sourceMappingURL=monorepo-stage.d.ts.map