import type { ApiKeyPrincipal } from "@hasna/contracts/auth"; import { type FeedBinding, type FeedFilter, type FeedPage } from "../feed/protocol.js"; import { IntakePostgres } from "./intake-postgres.js"; /** Read-only payload access is separate from a producer's receipt permission. */ export declare class FeedPostgres { readonly intake: IntakePostgres; private readonly cursorKey; constructor(intake: IntakePostgres, signingSecret: string | Buffer); ready(): Promise; private principal; private key; private authorize; private encode; private decode; /** Enumerates only this authenticated key's active grants, never other agents. */ grants(principal: ApiKeyPrincipal, after?: string): Promise<{ protocol: string; tenant_id: string; grants: { subject?: any; sink_id: string; consumer_id: any; producer_id: any; corpus_id: any; source_authority_id: any; app: any; types: any; }[]; next: string | null; }>; capability(principal: ApiKeyPrincipal, rawBinding: FeedBinding, rawFilter: FeedFilter): Promise<{ tenant_id: string; filter: FeedFilter; start: "now"; minimum_poll_seconds: number; consumer_id: string; sink_id: string; producer_id: string; corpus_id: string; source_authority_id: string; protocol: string; }>; read(principal: ApiKeyPrincipal, rawBinding: FeedBinding, rawFilter: FeedFilter, cursor?: string, limit?: number): Promise; }