import { ApiKeyStore, type ApiKeyPrincipal } from "@hasna/contracts/auth"; import type { Pool, PoolClient, QueryResultRow } from "pg"; import { type IntakeBinding, type IntakeReceipt } from "../intake/protocol.js"; export declare function authQueries(pool: Pick): { many(sql: string, params?: readonly unknown[]): Promise; get(sql: string, params?: readonly unknown[]): Promise; execute(sql: string, params?: readonly unknown[]): Promise; }; export declare function tenantTransaction(pool: Pool, tenant: string, run: (c: PoolClient) => Promise): Promise; export declare class IntakePostgres { readonly pool: Pool; readonly expectedSinkId: string; readonly expectedAuthorityId: string; readonly keys: ApiKeyStore; constructor(pool: Pool, expectedSinkId: string, expectedAuthorityId: string); /** Fail closed on owner/superuser/BYPASSRLS service credentials or a wrong sink. */ ready(): Promise; private authorize; private receipt; capability(principal: ApiKeyPrincipal, binding: IntakeBinding): Promise<{ tenant_id: string; kid: string; sink_id: string; producer_id: string; corpus_id: string; source_authority_id: string; protocol: string; }>; accept(principal: ApiKeyPrincipal, raw: unknown): Promise; read(principal: ApiKeyPrincipal, binding: IntakeBinding, eventId: string): Promise; }