/**
 * Options for scanning a directory for secrets
 */
export interface ScanOptions {
    /**
     * Directory to scan (default: current directory)
     */
    directory?: string;
    /**
     * Scan from project root
     */
    root?: boolean;
    /**
     * File patterns to exclude
     */
    excludeFiles?: string[];
    /**
     * Directory patterns to exclude
     */
    excludeDirs?: string[];
    /**
     * Check for potentially missed secrets
     */
    checkMissed?: boolean;
    /**
     * Include additional information
     */
    verbose?: boolean;
    /**
     * Output file path
     */
    output?: string;
    /**
     * Enable file size limits (default: false)
     */
    limitFileSize?: boolean;
    /**
     * Maximum file size to scan in bytes (default: 0, no limit)
     */
    maxFileSize?: number;
}
/**
 * A detected secret
 */
export interface Secret {
    /**
     * File path where the secret was found
     */
    file: string;
    /**
     * Line number where the secret was found
     */
    line: number | string;
    /**
     * Types of secrets detected
     */
    types: string[];
    /**
     * Whether the secret is likely a false positive
     */
    is_false_positive: boolean;
    /**
     * Hashed value of the secret
     */
    hashed_secret?: string;
}
/**
 * A potentially missed secret
 */
export interface MissedSecret {
    /**
     * File path where the secret was found
     */
    file: string;
    /**
     * Line number where the secret was found
     */
    line: number;
    /**
     * Type of secret
     */
    type: string;
}
/**
 * Scan results
 */
export interface ScanResults {
    /**
     * Detected secrets
     */
    secrets: Secret[];
    /**
     * Potentially missed secrets
     */
    missed_secrets: MissedSecret[];
    /**
     * Whether the file was truncated due to size limits
     */
    truncated?: boolean;
}
