import { type ArkmeOutgoingCallIntentClaim, type ArkmeOutgoingCallIntentResolutionInput, type ArkmeOutgoingCallMediaType, type ArkmeOutgoingCallToolResult } from './outgoing-call-contract.js'; interface BrokerOptions { now?: () => number; randomId?: () => string; setTimer?: (callback: () => void, delay: number) => unknown; clearTimer?: (handle: unknown) => void; } export declare class ArkmeOutgoingCallBroker { private readonly now; private readonly randomId; private readonly setTimer; private readonly clearTimer; private readonly intents; private readonly leases; private disposed; constructor(options?: BrokerOptions); request(input: { userId: number; sourceRef: string; displayName: string; mediaType: ArkmeOutgoingCallMediaType; signal?: AbortSignal; }): Promise; claim(userId: number): ArkmeOutgoingCallIntentClaim | null; resolveIntent(input: ArkmeOutgoingCallIntentResolutionInput): void; acquireLease(userId: number, callRequestId: string): number; heartbeatLease(userId: number, callRequestId: string): number; releaseLease(userId: number, callRequestId: string): void; clearUser(userId: number, message: string): void; dispose(): void; private expireStaleIntents; private expireLease; private removeIntent; private detachAbort; } export {}; //# sourceMappingURL=outgoing-call-broker.d.ts.map