import { Scanner, ScanOptions, ScanResult } from '../types';
import { ResultCache } from '../utils/result-cache';
export interface FileContext {
    file: string;
    content: string;
    lines: string[];
    contentHash: string;
}
export declare abstract class BaseScanner implements Scanner {
    abstract name: string;
    abstract scan(options: ScanOptions): Promise<ScanResult[]>;
    protected resultCache: ResultCache | null;
    protected initCache(options: ScanOptions, signature: string): void;
    protected getCached(file: string, contentHash: string): ScanResult[] | null;
    protected setCached(file: string, contentHash: string, results: ScanResult[]): void;
    protected saveCache(): void;
    protected iterateFiles(options: ScanOptions, pattern: string, ignore: string[]): AsyncGenerator<FileContext>;
    protected hasFileSuppression(lines: string[]): boolean;
    protected isSuppressed(lines: string[], lineIndex: number, ruleId: string): boolean;
    protected createResult(partial: Omit<ScanResult, 'range'> & {
        range?: ScanResult['range'];
    }, lineText?: string): ScanResult;
}
//# sourceMappingURL=base-scanner.d.ts.map