import type { MachineDef, StorageConstraintDef } from "../core/dsl.js"; export interface StorageConstraintRenderResult { constraint: StorageConstraintDef; hash: string; comment: string; statements: readonly string[]; } export interface GeneratedStoragePaths { outputDir: string; sqlPath: string; } export interface StorageConstraintVerificationResult { name: string; kind: StorageConstraintDef["kind"]; table: string; schema: string; backsInvariant?: string; present: boolean; valid: boolean; hashMatched: boolean; columnsMatched?: boolean; predicateMatched?: boolean; flagsMatched?: boolean; typeCoverageMatched?: boolean; } export interface PostgresVerificationCertificate { certificateVersion: 1; machine: string; database: "postgres"; verified: boolean; checkedAt: string; constraints: readonly StorageConstraintVerificationResult[]; } export declare const renderPostgresStorageContract: (machine: MachineDef) => readonly StorageConstraintRenderResult[]; export declare const renderPostgresStorageSql: (machine: MachineDef) => string; export declare const writeGeneratedStorageContract: (machine: MachineDef, outputRoot: string) => Promise; export declare const applyPostgresStorageContract: (machine: MachineDef, databaseUrl?: string) => Promise; export declare const verifyPostgresStorageContract: (machine: MachineDef, databaseUrl?: string) => Promise;