import { type AgentDraft, type AgentEntity, type AgentRelease, type AgentVersion, type DeploymentStore, type PublishDraftRequest, type RuntimeRevision, type ThreadAssignmentRequest, type ThreadPin } from '@kuralle-agents/deployment'; interface QueryResultLike { rows: Array>; rowCount?: number | null; } interface PgClientLike { query(text: string, params?: unknown[]): Promise; release?(): void; } interface PgPoolLike extends PgClientLike { connect?(): Promise; } export interface PostgresDeploymentStoreOptions { client: PgPoolLike; tablePrefix?: string; /** Existing Postgres schema to use. Kuralle never creates the schema itself. */ schema?: string; /** Opt-in convenience for dedicated databases and local tests. Defaults to false. */ autoMigrate?: boolean; } export interface PostgresDeploymentTables { entities: string; drafts: string; versions: string; runtimes: string; releases: string; allocations: string; activeReleases: string; pins: string; } export interface PostgresDeploymentSchemaOptions { tablePrefix?: string; schema?: string; } export declare function postgresDeploymentTables(options?: PostgresDeploymentSchemaOptions): PostgresDeploymentTables; export declare function postgresDeploymentMigrationStatements(options?: PostgresDeploymentSchemaOptions): readonly string[]; export declare function postgresDeploymentMigrationSql(options?: PostgresDeploymentSchemaOptions): string; export declare class PostgresDeploymentStore implements DeploymentStore { private readonly client; private readonly tablePrefix; private readonly schema?; private readonly table; private readonly ready; constructor(options: PostgresDeploymentStoreOptions); createEntity(entity: AgentEntity): Promise; getEntity(tenantId: string, entityId: string): Promise; saveDraft(draft: AgentDraft, expectedRevision: number): Promise; getDraft(tenantId: string, draftId: string): Promise; publishDraft(request: PublishDraftRequest): Promise; createVersion(version: AgentVersion): Promise; getVersion(tenantId: string, versionId: string): Promise; registerRuntime(revision: RuntimeRevision): Promise; createRelease(release: AgentRelease): Promise; routeTrafficTo(tenantId: string, releaseId: string): Promise; assignThread(request: ThreadAssignmentRequest): Promise; getThreadPin(tenantId: string, threadId: string): Promise; private verifyExistingPin; private transaction; migrate(): Promise; } export {};