/**
 * PostgresHITLStateStore — Postgres-backed HITL state store.
 *
 * Uses SELECT FOR UPDATE for atomic state transitions (no lost-update races).
 * Requires the hitl_requests table from migration 039_hitl_requests.sql.
 *
 * Constructor: { db: DbPort } — compatible with pg.Pool / pg.Client.
 *
 * @public
 */
import type { DbPort } from "../../ports/db.js";
import { type HITLPort, type HITLRequest, type HITLState } from "../../ports/hitl.js";
export declare class PostgresHITLStateStore implements HITLPort {
    #private;
    constructor({ db }: {
        db: DbPort;
    });
    request(req: HITLRequest): Promise<string>;
    getState(id: string): Promise<HITLState>;
    await(id: string, timeoutMs?: number): Promise<HITLState>;
    resolve(id: string, decision: "approved" | "rejected", by: string): Promise<void>;
    expire(id: string): Promise<void>;
    /**
     * Expire all pending requests whose deadline has passed.
     * Called by runExpireJob via the _expireOverdue duck-type hook.
     */
    _expireOverdue(): Promise<void>;
}
//# sourceMappingURL=postgres-state-store.d.ts.map