import { type CodexThreadRow } from "./codex-session-provider.js"; /** SQLite command protocol and file-stability evidence; no terminal identity inference. */ export type CodexSqliteOpenMode = "readonly" | "query_only"; export interface CodexSqliteThreadQueryRequest { dbPath: string; openMode: CodexSqliteOpenMode; maxSessions: number; nativeThreadId?: string; filters?: CodexThreadQueryFilters; afterSchema?: (columns: readonly string[]) => void | Promise; } export interface CodexThreadQueryFilters { cwd?: string; source?: string; archived?: boolean; modelProvider?: string; historyMode?: string; } export interface CodexSqliteThreadQueryResult { columns: string[]; rows: CodexThreadRow[]; } export type CodexSqliteThreadQueryRunner = (request: CodexSqliteThreadQueryRequest) => Promise; export declare const NATIVE_THREAD_ID_PATTERN: RegExp; export declare const MAX_SQLITE_QUERY_OUTPUT_BYTES: number; export declare const MAX_SQLITE_ERROR_OUTPUT_BYTES: number; export declare const SQLITE_QUERY_TIMEOUT_MS = 10000; export interface CodexSqliteFileIdentity { path: string; exists: boolean; kind?: "file" | "directory" | "other"; device?: string; inode?: string; size?: number; mtimeMs?: number; errorCode?: string; } export interface CodexSqliteFilesSnapshot { dbPath: string; main: CodexSqliteFileIdentity; wal: CodexSqliteFileIdentity; shm: CodexSqliteFileIdentity; } export interface CodexSqliteQueryFailure { dbPath: string; stage: string; status: number | null; detail: string; files: CodexSqliteFilesSnapshot; previousFailure?: CodexSqliteQueryFailure; } export declare class CodexSqliteSessionError extends Error { readonly status: number | null; readonly stage: string; constructor({ message, status, stage }: { message: string; status: number | null; stage: string; }); } export declare function runCodexSqliteThreadQuery(request: CodexSqliteThreadQueryRequest): Promise; export declare function validateCodexThreadQueryResult(result: CodexSqliteThreadQueryResult): CodexThreadRow[]; export declare function validateCodexThreadColumns(columns: readonly string[]): void; export declare function sqliteReadWriteUri(dbPath: string): string; export declare function inspectCodexSqliteFiles(dbPath: string): CodexSqliteFilesSnapshot; export declare function inspectCodexSqliteFile(filePath: string): CodexSqliteFileIdentity; export declare function assertStableCodexSqliteMain({ baseline, current, stage, selectedPath }: { baseline: CodexSqliteFilesSnapshot; current: CodexSqliteFilesSnapshot; stage: string; selectedPath?: string; }): void; export declare function codexSqliteQueryFailure(error: unknown, context: { dbPath: string; stage: string; files: CodexSqliteFilesSnapshot; previousFailure?: CodexSqliteQueryFailure; }): CodexSqliteQueryFailure; export declare function isSqliteCantOpen(failure: CodexSqliteQueryFailure): boolean; export declare function codexSqliteQueryDiagnosticError(failure: CodexSqliteQueryFailure): Error; export declare function formatCodexSqliteFiles(snapshot: CodexSqliteFilesSnapshot): string; export declare function latestStateDbPath(codexHome: string): string | undefined; export declare function buildThreadSelect(columns: string[], limit: number, filters?: CodexThreadQueryFilters): string; export declare function sqliteThreadFilterParameterCommands(filters: CodexThreadQueryFilters | undefined): string[]; export declare function buildThreadByIdSelect(columns: string[], nativeThreadId: string): string;