export type ExplainDialect = 'postgres' | 'mysql' | 'sqlite'; export interface ExplainOptions { enabled?: boolean; analyze?: boolean; } export interface ExplainRawResult { dialect: ExplainDialect; analyzed: boolean; raw: unknown; } export interface ExplainPlan { dialect: ExplainDialect; analyzed: boolean; planType: string | null; hasSeqScan: boolean; seqScanRelations: string[]; estimatedRows?: number; estimatedCost?: number; raw: unknown; } export interface ExplainRunner { readonly collectorName: string; explain(sql: string, parameters: readonly unknown[] | undefined): Promise; }