import * as FlexSDK from "@twilio/flex-sdk"; import type { FlexDataClient, NormalizedCacheObject } from "@twilio/flex-sdk/data-client"; import { EventEmitter } from "events"; import { DeepPartial } from "../types"; import type { FindProfilesRequest, IdentifiersResponse, Profile, ProfilesResponse, TraitsResponse, VirtualAgentData } from "./API"; export interface FlexSDKOptions extends DeepPartial { } export interface FlexSDKTokenPayload { token: string; data: FlexSDK.TokenData; } export declare class FlexSDKManagerImpl extends EventEmitter { private client?; private dataClient?; private onTokenUpdated; private onTokenExpired; setClient(client: FlexSDK.Client): void; initialize(token: string, options: FlexSDKOptions): Promise; validateToken(token: string): Promise; getClient(): FlexSDK.Client | undefined; getDataClient(): FlexDataClient | undefined; destroy(): Promise; updateToken(token: string): Promise; getAccountConfig(token: string, options?: FlexSDK.AccountConfigOptions): Promise>; getCachedAccountConfig(): FlexSDK.AccountConfigData | undefined; getFeaturesConfig(token: string, uiVersion?: string): Promise; setAccountConfig(accountSid: string, token: string, config: Partial>): Promise; getPublicConfig(option: FlexSDK.XOR): Promise; getCachedPublicConfig(): FlexSDK.PublicConfig | undefined; getIdentifiers(uniqueName: string, baseUrl: string, token: string): Promise; getTraits(uniqueName: string, baseUrl: string, token: string): Promise; findProfileByIdentifiers(findProfilesRequest: FindProfilesRequest, baseUrl: string, token: string): Promise; findProfileByProfileSid(profileConnectSid: string, connectorName: string, baseUrl: string, token: string): Promise; hasPermission(permissionToCheck: string, tokenRoles: string[]): boolean | null; fetchVirtualAgentTranscript(taskSid: string, token: string, virtualAgentUrl: string): Promise; } export declare const FlexSDKManager: FlexSDKManagerImpl;