import { z } from 'zod';
declare const CliOptionsSchema: z.ZodObject<{
    byFile: z.ZodOptional<z.ZodBoolean>;
    format: z.ZodString;
    includeExt: z.ZodOptional<z.ZodString>;
    excludeExt: z.ZodOptional<z.ZodString>;
    excludeDir: z.ZodOptional<z.ZodString>;
    ignorePattern: z.ZodOptional<z.ZodArray<z.ZodString>>;
    gitignore: z.ZodBoolean;
    sort: z.ZodString;
    output: z.ZodOptional<z.ZodString>;
    ci: z.ZodOptional<z.ZodBoolean>;
    largeFileLimit: z.ZodString;
    code: z.ZodBoolean;
    structure: z.ZodOptional<z.ZodBoolean>;
    tokenBudget: z.ZodOptional<z.ZodString>;
    tokenizer: z.ZodOptional<z.ZodString>;
    quick: z.ZodOptional<z.ZodBoolean>;
    showConfidence: z.ZodOptional<z.ZodBoolean>;
}, z.core.$loose>;
type CliOptions = z.infer<typeof CliOptionsSchema>;
/**
 * Resolve the scc binary, degrading to null (documents-only) when scc is not
 * available instead of aborting the whole scan. Returns a warning string when
 * scc could not be found so the caller can surface it without failing.
 */
export declare function resolveSccBinary(resolve?: () => Promise<string>): Promise<{
    binary: string | null;
    warning: string | null;
}>;
/**
 * Translate directory-style ignore patterns into scc --exclude-dir names. scc
 * excludes by directory basename, so only single-segment directory patterns
 * (optionally with a trailing slash, `/**`, or `/*`) can be forwarded; negations,
 * multi-segment paths, and wildcard patterns are left to apply to documents only.
 */
export declare function deriveSccExcludeDirs(ignorePatterns: string[]): string[];
export declare function run(argv: string[]): Promise<void>;
export declare function applyTokenBudget(output: string, opts: CliOptions): Promise<string>;
export {};
