export type SeverityLevel = 'critical' | 'high' | 'medium' | 'low';
export interface SecurityIssue {
    rule: string;
    severity: SeverityLevel;
    message: string;
    file: string;
    line: number;
    column: number;
    code: string;
    suggestion: string;
}
export interface ScanOptions {
    target: string;
    format: 'table' | 'json' | 'sarif' | 'html';
    verbose: boolean;
    severity?: SeverityLevel;
    config?: string;
    parallel?: boolean;
    maxFiles?: number;
    exclude?: string[];
    include?: string[];
}
export interface RuleMatch {
    pattern: RegExp;
    message: string;
    severity: SeverityLevel;
    suggestion: string;
}
export interface FileContent {
    path: string;
    content: string;
    lines: string[];
}
export interface ScanResult {
    issues: SecurityIssue[];
    filesScanned: number;
    issuesFound: number;
    summary: {
        critical: number;
        high: number;
        medium: number;
        low: number;
    };
}
export interface RuleConfig {
    enabled: boolean;
    severity?: SeverityLevel;
    patterns?: string[];
    excludePatterns?: string[];
}
export interface VibeGuardConfig {
    rules?: Record<string, RuleConfig>;
    exclude?: string[];
    include?: string[];
    outputFormat?: 'table' | 'json' | 'sarif' | 'html';
    outputFile?: string;
    verbose?: boolean;
    severity?: SeverityLevel;
    maxFileSize?: string;
    parallel?: boolean;
    maxWorkers?: number;
}
export declare abstract class BaseRule {
    abstract readonly name: string;
    abstract readonly description: string;
    abstract readonly severity: SeverityLevel;
    abstract check(fileContent: FileContent): SecurityIssue[];
    protected createIssue(file: string, line: number, column: number, code: string, message: string, suggestion: string, severity?: SeverityLevel): SecurityIssue;
    protected findMatches(content: string, pattern: RegExp): Array<{
        match: RegExpMatchArray;
        line: number;
        column: number;
        lineContent: string;
    }>;
}
//# sourceMappingURL=index.d.ts.map