import type { Database } from "./database.js"; export declare const PATTERN_TAXONOMY: readonly ["factory", "builder", "singleton", "prototype", "object_pool", "adapter", "decorator", "facade", "proxy", "composite", "bridge", "flyweight", "observer", "strategy", "command", "iterator", "state", "template_method", "visitor", "mediator", "chain_of_responsibility", "memento", "repository", "service", "controller", "middleware", "validator", "serializer", "event_handler", "router", "store", "view"]; export type PatternName = (typeof PATTERN_TAXONOMY)[number]; export declare const PATTERN_SET: Set; export interface PatternEdge { id: number; chunk_id: number; pattern: string; role: string | null; confidence: number; content_hash: string; labeled_at: number; } export interface PatternEdgeInput { chunk_id: number; pattern: string; role: string | null; confidence: number; content_hash: string; } export interface PatternEdgeWithLocation extends PatternEdge { file_path: string; start_line: number; end_line: number; symbol_name: string | null; chunk_type: string; } export declare class PatternStore { private db; private upsertStmt; private deleteByChunkStmt; private getByChunkStmt; private getByPatternStmt; private countStmt; private countByPatternStmt; constructor(db: Database); upsert(input: PatternEdgeInput, labeledAt?: number): void; upsertMany(rows: PatternEdgeInput[]): void; deleteForChunk(chunkId: number): void; getByChunk(chunkId: number): PatternEdge[]; getByPattern(pattern: string, limit?: number): PatternEdgeWithLocation[]; count(): number; countByPattern(pattern: string): number; }