import { PreservationRule, CommentCategory } from './types';
export declare abstract class BasePreservationRule implements PreservationRule {
    readonly name: string;
    readonly pattern: RegExp;
    readonly priority: number;
    readonly description: string;
    readonly category: CommentCategory;
    constructor(name: string, pattern: RegExp, priority: number, description: string, category: CommentCategory);
    matches(comment: string): boolean;
    extractMetadata(comment: string): Record<string, any>;
}
export declare class FrameworkPreservationRule extends BasePreservationRule {
    readonly framework: string;
    constructor(name: string, pattern: RegExp, priority: number, description: string, framework: string);
    extractMetadata(comment: string): Record<string, any>;
}
export declare class DevelopmentPreservationRule extends BasePreservationRule {
    readonly keywords: string[];
    constructor(name: string, pattern: RegExp, priority: number, description: string, keywords: string[]);
    extractMetadata(comment: string): Record<string, any>;
}
export declare class ToolingPreservationRule extends BasePreservationRule {
    readonly tool: string;
    constructor(name: string, pattern: RegExp, priority: number, description: string, tool: string);
    extractMetadata(comment: string): Record<string, any>;
}
export declare class DocumentationPreservationRule extends BasePreservationRule {
    constructor(name: string, pattern: RegExp, priority: number, description: string);
    extractMetadata(comment: string): Record<string, any>;
}
export declare class CustomPreservationRule extends BasePreservationRule {
    readonly userPattern: string;
    constructor(name: string, pattern: RegExp, priority: number, description: string, userPattern: string);
    extractMetadata(comment: string): Record<string, any>;
}
//# sourceMappingURL=preservation-rules.d.ts.map