import type { Transport } from './transport'; export declare function interactionsClient(t: Transport): { listInteractions: (page: number, pageSize: number, signal?: AbortSignal) => Promise<{ total: number; page: number; page_size: number; next_page: number | null; truncated: boolean; items: { interaction_id: string; group_id: string; question: string; answer_format: "text" | "external" | "confirm" | "select" | "form"; format_payload: Record; created_at: string; timeout_at: string; sensitive: boolean; server_verified?: boolean | undefined; channel?: string | undefined; recipient?: string | undefined; origin?: string | undefined; audience?: string | undefined; media?: unknown[] | undefined; }[]; }>; answerInteraction: (interactionId: string, answer: unknown) => Promise<{ interaction_id: string; status: string; }>; cancelInteraction: (interactionId: string) => Promise<{ interaction_id: string; status: string; }>; }; export declare function interactionsStreamClient(t: Transport): { /** * Open the authed interactions SSE stream. The stream is TAIL-ONLY: its cursor * is the stream tail at connect, so it carries no backlog and no * `interaction.backlog_done` frame — the pending base comes from * `listInteractions`. The caller drives reconnect and refetches that base on * each (re)connect. Returns the raw frame iterator; the interactions feature * maps frames to typed events. * * `lastEventId` (the id of the last frame the caller saw) is sent as the * `Last-Event-ID` header so the server resumes AFTER it and replays any frame — * including a card's `answered` — that landed during a disconnect gap. It is * also sent as a `?last_event_id=` query param so a proxy that strips the header * still resumes; the server reads either. Omitted on a first connect. */ streamInteractions: (signal?: AbortSignal, lastEventId?: string) => Promise>; }; //# sourceMappingURL=interactions-client.d.ts.map