import { ChatEventId, BaseChatEvent, BaseChatMessageEvent, ChatMessageReceivedEvent, ChatMessageEditedEvent, ChatMessageDeletedEvent, ReadReceiptReceivedEvent, TypingIndicatorReceivedEvent, BaseChatThreadEvent, ChatParticipant, ChatAttachment, ChatAttachmentType, ChatThreadProperties, ChatThreadCreatedEvent, ChatThreadDeletedEvent, ChatThreadPropertiesUpdatedEvent, ParticipantsAddedEvent, ParticipantsRemovedEvent, ChatRetentionPolicy, NoneRetentionPolicy, ThreadCreationDateRetentionPolicy } from "./events/chat"; import { CommunicationIdentifier, CommunicationUserIdentifier, PhoneNumberIdentifier, MicrosoftTeamsUserIdentifier, TeamsExtensionUserIdentifier, UnknownIdentifier, CommunicationIdentifierKind, CommunicationUserKind, PhoneNumberKind, MicrosoftTeamsUserKind, TeamsExtensionUserKind, MicrosoftTeamsAppKind, MicrosoftTeamsAppIdentifier, UnknownIdentifierKind } from "./events/identifierModels"; import { AzureLogger } from "@azure/logger"; import { AbortSignalLike } from "@azure/abort-controller"; import { AccessToken } from "@azure/core-auth"; import { AdditionalPolicyConfig } from "@azure/core-client"; import { UserAgentPolicyOptions } from "@azure/core-rest-pipeline"; export declare enum ConnectionState { Unknown = 0, Connected = 2, Disconnected = 3, Switching = 9 } export interface SignalingClientOptions { registrationTimeInMs?: number; resourceEndpoint?: string; gatewayApiVersion?: string; additionalPolicies?: AdditionalPolicyConfig[]; userAgentOptions?: UserAgentPolicyOptions; } export { ChatEventId, BaseChatEvent, BaseChatMessageEvent, ChatAttachment, ChatAttachmentType, ChatMessageReceivedEvent, ChatMessageEditedEvent, ChatMessageDeletedEvent, ReadReceiptReceivedEvent, TypingIndicatorReceivedEvent, BaseChatThreadEvent, ChatParticipant, ChatThreadProperties, ChatThreadCreatedEvent, ChatThreadDeletedEvent, ChatThreadPropertiesUpdatedEvent, ParticipantsAddedEvent, ParticipantsRemovedEvent, CommunicationIdentifier, CommunicationUserIdentifier, PhoneNumberIdentifier, MicrosoftTeamsUserIdentifier, TeamsExtensionUserIdentifier, UnknownIdentifier, CommunicationIdentifierKind, CommunicationUserKind, PhoneNumberKind, MicrosoftTeamsUserKind, TeamsExtensionUserKind, MicrosoftTeamsAppKind, MicrosoftTeamsAppIdentifier, UnknownIdentifierKind, ChatRetentionPolicy, NoneRetentionPolicy, ThreadCreationDateRetentionPolicy, }; /** * Options for `CommunicationTokenCredential`'s `getToken` function. */ export interface CommunicationGetTokenOptions { /** * An implementation of `AbortSignalLike` to cancel the operation. */ abortSignal?: AbortSignalLike; } /** * The Azure Communication Services token credential. */ export interface CommunicationTokenCredential { /** * Gets an `AccessToken` for the user. Throws if already disposed. * @param options - Additional options. */ getToken(options?: CommunicationGetTokenOptions): Promise; } export interface SignalingClient { /** * Start the realtime connection. */ start(): void; /** * Stop the realtime connection and unsubscribe all event handlers. */ stop(isTokenExpired?: boolean): void; /** * Listen to connectionChanged events. */ on(event: "connectionChanged", listener: (state: ConnectionState) => void): void; /** * Listen to chatMessageReceived events. */ on(event: "chatMessageReceived", listener: (payload: ChatMessageReceivedEvent) => void): void; /** * Listen to typingIndicatorReceived events. */ on(event: "typingIndicatorReceived", listener: (payload: TypingIndicatorReceivedEvent) => void): void; /** * Listen to readReceiptReceived events. */ on(event: "readReceiptReceived", listener: (payload: ReadReceiptReceivedEvent) => void): void; /** * Listen to chatMessageEdited events. */ on(event: "chatMessageEdited", listener: (payload: ChatMessageEditedEvent) => void): void; /** * Listen to chatMessageDeleted events. */ on(event: "chatMessageDeleted", listener: (payload: ChatMessageDeletedEvent) => void): void; /** * Listen to chatThreadCreated events. */ on(event: "chatThreadCreated", listener: (payload: ChatThreadCreatedEvent) => void): void; /** * Listen to chatThreadPropertiesUpdated events. */ on(event: "chatThreadPropertiesUpdated", listener: (payload: ChatThreadPropertiesUpdatedEvent) => void): void; /** * Listen to chatThreadDeleted events. */ on(event: "chatThreadDeleted", listener: (payload: ChatThreadDeletedEvent) => void): void; /** * Listen to participantsAdded events. */ on(event: "participantsAdded", listener: (payload: ParticipantsAddedEvent) => void): void; /** * Listen to participantsRemoved events. */ on(event: "participantsRemoved", listener: (payload: ParticipantsRemovedEvent) => void): void; } export declare class CommunicationSignalingClient implements SignalingClient { private readonly credential; private readonly logger; private readonly options?; private readonly trouter; private config; private stateChangedListener; private tokenFetchRetries; private resourceEndpoint; private gatewayApiVersion; constructor(credential: CommunicationTokenCredential, logger: AzureLogger, options?: SignalingClientOptions); start(): Promise; stop(isTokenExpired?: boolean): Promise; on(event: "connectionChanged", listener: (state: ConnectionState) => void): void; on(event: "chatMessageReceived", listener: (payload: ChatMessageReceivedEvent) => void): void; on(event: "typingIndicatorReceived", listener: (payload: TypingIndicatorReceivedEvent) => void): void; on(event: "readReceiptReceived", listener: (payload: ReadReceiptReceivedEvent) => void): void; on(event: "chatMessageEdited", listener: (payload: ChatMessageEditedEvent) => void): void; on(event: "chatMessageDeleted", listener: (payload: ChatMessageDeletedEvent) => void): void; on(event: "chatThreadCreated", listener: (payload: ChatThreadCreatedEvent) => void): void; on(event: "chatThreadPropertiesUpdated", listener: (payload: ChatThreadPropertiesUpdatedEvent) => void): void; on(event: "chatThreadDeleted", listener: (payload: ChatThreadDeletedEvent) => void): void; on(event: "participantsAdded", listener: (payload: ParticipantsAddedEvent) => void): void; on(event: "participantsRemoved", listener: (payload: ParticipantsRemovedEvent) => void): void; }