import type Database from 'better-sqlite3';
export type SuggestionType = 'security' | 'performance' | 'quality' | 'dependency' | 'pattern';
type SuggestionStatus = 'pending' | 'accepted' | 'dismissed' | 'auto_applied';
export interface SuggestionRow {
    id: string;
    type: string;
    title: string;
    description: string;
    priority: number;
    evidence: string;
    suggestedAction: string | null;
    status: string;
    riskLevel: string;
    sourceModule: string;
    createdAt: string;
    resolvedAt: string | null;
}
export interface CreateSuggestionInput {
    type: SuggestionType;
    title: string;
    description: string;
    priority: number;
    evidence: Record<string, unknown>;
    suggestedAction?: string;
    riskLevel?: string;
    sourceModule: string;
}
export interface SuggestionStats {
    total: number;
    byType: Record<string, number>;
    byStatus: Record<string, number>;
    pendingCount: number;
}
interface StorageProvider {
    getDatabase(): Database.Database;
}
export declare class SuggestionStore {
    private readonly db;
    private readonly insertStmt;
    private fts5Available;
    constructor(storage: StorageProvider);
    private initTables;
    create(input: CreateSuggestionInput): SuggestionRow;
    resolve(id: string, status: SuggestionStatus): SuggestionRow;
    getById(id: string): SuggestionRow | null;
    getPending(limit?: number): SuggestionRow[];
    getHighPriority(maxPriority?: number): SuggestionRow[];
    getStats(): SuggestionStats;
    search(query: string, limit?: number): SuggestionRow[];
    private findDuplicate;
    private enforceMaxSuggestions;
}
export {};
//# sourceMappingURL=SuggestionStore.d.ts.map