import ACSClient from "./core/messaging/ACSClient";
import { ParticipantsRemovedEvent } from '@azure/communication-signaling';
import ChatAdapterOptionalParams from "./core/messaging/ChatAdapterOptionalParams";
import ChatConfig from "./core/ChatConfig";
import ChatReconnectContext from "./core/ChatReconnectContext";
import ChatReconnectOptionalParams from "./core/ChatReconnectOptionalParams";
import ChatSDKConfig from "./core/ChatSDKConfig";
import ChatSDKMessage from "./core/messaging/ChatSDKMessage";
import ChatTranscriptBody from "./core/ChatTranscriptBody";
import FileMetadata from "@microsoft/omnichannel-amsclient/lib/FileMetadata";
import FramedClient from "@microsoft/omnichannel-amsclient/lib/FramedClient";
import FramedlessClient from "@microsoft/omnichannel-amsclient/lib/FramedlessClient";
import GetAgentAvailabilityOptionalParams from "./core/GetAgentAvailabilityOptionalParams";
import GetConversationDetailsOptionalParams from "./core/GetConversationDetailsOptionalParams";
import GetLiveChatConfigOptionalParams from "./core/GetLiveChatConfigOptionalParams";
import GetLiveChatTranscriptOptionalParams from "./core/GetLiveChatTranscriptOptionalParams";
import IChatToken from "./external/IC3Adapter/IChatToken";
import IFileInfo from "@microsoft/omnichannel-ic3core/lib/interfaces/IFileInfo";
import IFileMetadata from "@microsoft/omnichannel-ic3core/lib/model/IFileMetadata";
import IMessage from "@microsoft/omnichannel-ic3core/lib/model/IMessage";
import IRawMessage from "@microsoft/omnichannel-ic3core/lib/model/IRawMessage";
import IRawThread from "@microsoft/omnichannel-ic3core/lib/interfaces/IRawThread";
import InitializeOptionalParams from "./core/InitializeOptionalParams";
import LiveChatContext from "./core/LiveChatContext";
import LiveWorkItemDetails from "./core/LiveWorkItemDetails";
import OmnichannelConfig from "./core/OmnichannelConfig";
import OmnichannelMessage from "./core/messaging/OmnichannelMessage";
import OnNewMessageOptionalParams from "./core/messaging/OnNewMessageOptionalParams";
import StartChatOptionalParams from "./core/StartChatOptionalParams";
import GetChatTokenOptionalParams from "./core/GetChatTokenOptionalParams";
declare class OmnichannelChatSDK {
    private debug;
    runtimeId: string;
    OCSDKProvider: unknown;
    IC3SDKProvider: unknown;
    OCClient: any;
    IC3Client: any;
    ACSClient: ACSClient | null;
    AMSClient: FramedClient | FramedlessClient | null;
    omnichannelConfig: OmnichannelConfig;
    chatSDKConfig: ChatSDKConfig;
    isInitialized: boolean;
    localeId: string;
    requestId: string;
    private chatToken;
    private liveChatConfig;
    private liveChatVersion;
    private dataMaskingRules;
    private authSettings;
    private authenticatedUserToken;
    private preChatSurvey;
    private conversation;
    private callingOption;
    private telemetry;
    private scenarioMarker;
    private ic3ClientLogger;
    private ocSdkLogger;
    private acsClientLogger;
    private acsAdapterLogger;
    private callingSdkLogger;
    private amsClientLogger;
    private isPersistentChat;
    private isChatReconnect;
    private reconnectId;
    private refreshTokenTimer;
    constructor(omnichannelConfig: OmnichannelConfig, chatSDKConfig?: ChatSDKConfig);
    setDebug(flag: boolean): void;
    initialize(optionalParams?: InitializeOptionalParams): Promise<ChatConfig>;
    private getChatReconnectContextWithAuthToken;
    private getChatReconnectContextWithReconnectId;
    getChatReconnectContext(optionalParams?: ChatReconnectOptionalParams): Promise<ChatReconnectContext>;
    startChat(optionalParams?: StartChatOptionalParams): Promise<void>;
    endChat(): Promise<void>;
    getCurrentLiveChatContext(): Promise<LiveChatContext | {}>;
    getConversationDetails(optionalParams?: GetConversationDetailsOptionalParams): Promise<LiveWorkItemDetails>;
    /**
     * Gets PreChat Survey.
     * @param parse Whether to parse PreChatSurvey to JSON or not.
     */
    getPreChatSurvey(parse?: boolean): Promise<any>;
    getLiveChatConfig(optionalParams?: GetLiveChatConfigOptionalParams): Promise<ChatConfig>;
    getChatToken(cached?: boolean, optionalParams?: GetChatTokenOptionalParams): Promise<IChatToken>;
    getCallingToken(): Promise<string>;
    getMessages(): Promise<IMessage[] | OmnichannelMessage[] | undefined>;
    getDataMaskingRules(): Promise<any>;
    sendMessage(message: ChatSDKMessage): Promise<void>;
    onNewMessage(onNewMessageCallback: CallableFunction, optionalParams?: OnNewMessageOptionalParams | unknown): Promise<void>;
    sendTypingEvent(): Promise<void>;
    onTypingEvent(onTypingEventCallback: CallableFunction): Promise<void>;
    onAgentEndSession(onAgentEndSessionCallback: (message: IRawThread | ParticipantsRemovedEvent) => void): Promise<void>;
    uploadFileAttachment(fileInfo: IFileInfo | File): Promise<IRawMessage | OmnichannelMessage>;
    downloadFileAttachment(fileMetadata: FileMetadata | IFileMetadata): Promise<Blob>;
    emailLiveChatTranscript(body: ChatTranscriptBody): Promise<any>;
    getLiveChatTranscript(optionalParams?: GetLiveChatTranscriptOptionalParams): Promise<any>;
    createChatAdapter(optionalParams?: ChatAdapterOptionalParams): Promise<unknown>;
    getVoiceVideoCalling(params?: any): Promise<any>;
    getPostChatSurveyContext(): Promise<any>;
    getAgentAvailability(optionalParams?: GetAgentAvailabilityOptionalParams): Promise<any>;
    private populateInitChatOptionalParam;
    private getIC3Client;
    private getChatConfig;
    private resolveIC3ClientUrl;
    private resolveChatAdapterUrl;
    private updateChatToken;
    private setAuthTokenProvider;
}
export default OmnichannelChatSDK;
