import type { ValidationIssue } from './types.js'; import type { ResolvedDatabase } from '../config/load.js'; /** A required column whose type or nullability in the database contradicts the definition. */ export interface QueueColumnDrift { readonly column: string; /** Present when the type differs; the definition's spelling and the database's. */ readonly requiredType?: string; readonly foundType?: string; /** True when the definition requires NOT NULL and the column is nullable. */ readonly nullableButRequired?: boolean; } /** A registered queue table that is absent, or present with columns missing or drifted. */ export interface QueueTableProblem { readonly table: string; /** Empty when the table itself is absent. */ readonly missingColumns: readonly string[]; /** Omitted entirely when no present column has drifted. */ readonly driftedColumns?: readonly QueueColumnDrift[]; } export declare function queueTableMessage(table: string, database: string): string; export declare function queueColumnsMessage(table: string, database: string, missing: readonly string[]): string; export declare function queueColumnDriftMessage(table: string, database: string, drifted: readonly QueueColumnDrift[]): string; /** The message for one problem, whichever kinds it carries. */ export declare function queueTableProblemMessage(problem: QueueTableProblem, database: string): string; /** * Registered queue tables that are absent from the database at `url`, or * present without every column their definition requires, or present with a * required column whose type or nullability contradicts the definition. * Opens a short-lived probe connection, mirroring validateConnectivity. Two * queries total, whatever the number of queues. */ export declare function queueTableProblems(url: string, timeoutMs?: number): Promise; /** Startup-validation leg: every registered queue's table must exist, in shape, in the default database (where queue migrations are emitted). */ export declare function validateQueueTables(defaultDb: ResolvedDatabase, timeoutMs?: number): Promise; //# sourceMappingURL=queue-tables.d.ts.map