import { type RuntimeEndpointClientReport, type RuntimeExactTargetPresentationEnvelopeV1, type RuntimeParticipantConversationSubject, type RuntimeServicesDisclosedParticipant } from "./services-client/index.js"; export declare const MAX_CONSECUTIVE_PROGRESSED_ACQUIRES = 20; export interface ServicesRetainedRecipientPresentation { contentType: string; envelope: RuntimeExactTargetPresentationEnvelopeV1; subject: RuntimeParticipantConversationSubject; speaker: RuntimeServicesDisclosedParticipant; reply: ServicesRetainedRecipientReply; } export type ServicesRetainedRecipientReplyResult = { status: "staged"; } | { status: "failed"; errorCode: string; error: string; retryable: boolean; }; export type ServicesRetainedRecipientReply = (content: string) => Promise; export interface ServicesRetainedRecipientLogger { info(message: string): void; warn(message: string): void; error(message: string, error?: unknown): void; } export interface ServicesRetainedRecipientOptions { apiHost: string; runtimeKey: string; present: (message: ServicesRetainedRecipientPresentation) => Promise; logger: ServicesRetainedRecipientLogger; endpointNonce?: string; retryDelayMs?: number; minimumHeartbeatDelayMs?: number; fetch?: typeof fetch; client?: RuntimeEndpointClientReport; } export declare class ServicesRetainedRecipientConsumer { private readonly clientConfig; private readonly runtimeKey; private readonly client; private readonly present; private readonly logger; private readonly endpointNonce; private readonly retryDelayMs; private readonly minimumHeartbeatDelayMs; private endpoint; currentEndpoint(): { id: string; nonce: string; } | null; private presentedOffer; private acquirePermanentlyBlocked; private progressedBoundedDrains; private drainThrows; private consumptionPermanentlyBlocked; private replyPermanentlyBlocked; private consecutiveHeartbeatNotFound; private stopped; private activationPromise; private drainPromise; private drainRequested; private activationRetryTimer; private drainRetryTimer; private heartbeatTimer; private stopPromise; constructor(options: ServicesRetainedRecipientOptions); start(): Promise; stop(): Promise; requestDrain(): Promise; private activate; private drain; private advancePresentedOffer; private consumePresentedOffer; private createReplyAction; private submitReplyAttempt; private submitReply; private scheduleHeartbeat; private heartbeat; private recoverEndpoint; private scheduleActivationRetry; private scheduleDrainRetry; private backoffMs; private clearActivationRetryTimer; private clearDrainRetryTimer; private clearHeartbeatTimer; } //# sourceMappingURL=services-retained-recipient.d.ts.map