import { z } from 'zod';
export declare const PreviewCodebaseSizeOptionsSchema: z.ZodObject<{
    repoRoot: z.ZodString;
    excludeDir: z.ZodOptional<z.ZodArray<z.ZodString>>;
    noGitignore: z.ZodOptional<z.ZodBoolean>;
    ignorePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
    overlayIgnorePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
    maxFiles: z.ZodOptional<z.ZodNumber>;
    maxBytes: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type PreviewCodebaseSizeOptions = z.infer<typeof PreviewCodebaseSizeOptionsSchema>;
export interface PreviewCodebaseSizeRuntimeOptions extends PreviewCodebaseSizeOptions {
    signal?: AbortSignal;
}
export interface CodebaseSizeLanguagePreview {
    language: string;
    files: number;
    bytes: number;
}
export interface CodebaseSizeBudgetExceeded {
    maxFiles?: number;
    maxBytes?: number;
    codeFiles: number;
    estimatedBytes: number;
}
export interface CodebaseSizePreview {
    repoRoot: string;
    totalFiles: number;
    codeFiles: number;
    estimatedBytes: number;
    languages: CodebaseSizeLanguagePreview[];
    exceedsBudget?: CodebaseSizeBudgetExceeded;
}
export declare function previewCodebaseSize(options: PreviewCodebaseSizeRuntimeOptions): Promise<CodebaseSizePreview>;
