export type SecretFinding = {
    file: string;
    line: number;
    match: string;
    pattern: string;
    strategy: 'gitleaks' | 'regex';
};
export type ScanOptions = {
    /** Working directory (defaults to process.cwd()) */
    cwd?: string;
    /** Glob patterns to exclude from scanning */
    allowlist?: string[];
    /** Timeout in milliseconds (defaults to 2000) */
    timeoutMs?: number;
    /** Return JSON-structured output */
    json?: boolean;
    /** Maximum diff size in bytes before early abort (defaults to 5MB) */
    maxDiffBytes?: number;
};
export type ScanExitCode = 0 | 1 | 2;
export type ScanResult = {
    exitCode: ScanExitCode;
    findings: SecretFinding[];
    strategy: 'gitleaks' | 'regex';
    durationMs: number;
    error?: string;
};
export type ScanStrategy = {
    name: 'gitleaks' | 'regex';
    available(): boolean;
    scan(diff: string, options: ScanOptions): Promise<SecretFinding[]>;
};
