import { AgentxService, Service } from "../internal-types"; import { createJsApiLogger } from "./common/_logger"; import { createServiceChecker } from "./common/_service-checker"; type IdleCodeData = { id: string; name: string; }; type LatestInfoData = { agentName?: string; agentProfileID?: string; agentSessionId?: string; teamId?: string; teamName?: string; dn?: string; status?: string; subStatus?: string; idleCode?: IdleCodeData; idleCodes?: Service.Aqm.Configs.Entity[]; wrapupCodes?: Service.Aqm.Configs.Entity[]; outDialRegex?: string; isOutboundEnabledForTenant?: boolean; isOutboundEnabledForAgent?: boolean; isAdhocDialingEnabled?: boolean; isEndCallEnabled?: boolean; isEndConsultEnabled?: boolean; allowConsultToQueue?: boolean; isAgentAvailableAfterOutdial?: boolean; isCampaignManagementEnabled?: boolean; agentPersonalStatsEnabled?: boolean; }; type Listeners = { updated: (p: { name: keyof LatestInfoData; value?: string; oldValue?: string; }[]) => void; eAgentChannelStateChanged: Parameters[0]; eAgentChannelReloginSuccess: Parameters[0]; }; type Events = keyof Listeners; type Config = { logger: ReturnType; serviceChecker: ReturnType; }; export type ChangeAgentStateDataType = { state: "AVAILABLE" | "IDLE"; auxCodeId: string; lastStateChangeReason?: string; agentId: string; }; export declare class AgentStateInfoJsapi { stateChangeByChannelType(_arg0: { channelType: string[]; state: string; auxCodeIdArray: string[]; }): void; private readonly emitter; private readonly logger; private readonly serviceChecker; private SERVICE?; private checkService; private listeners; private emit; private update; private static getOutdialRegex; constructor(config: Config); private static findTeamName; private teams; private idleCodes; latestData: LatestInfoData; init(SERVICE?: AgentxService): Promise; cleanup(): void; private fetchLatestData; private subscribeSelfDataEvents; private unsubscribeSelfDataEvents; stateChange(stateData: { state: "Available" | "Idle"; auxCodeIdArray: string; }): Promise; stateChangeV2(stateData: Service.Aqm.Agent.StateChangeV2): Promise; mockOutdialAniList(): Promise; fetchAddressBooks(): Promise; changeAgentState(orgId: string, data: ChangeAgentStateDataType): Promise; fetchAgentIdleCodes(orgId: string, agentId: string): Promise; fetchOrganizationIdleCodes(orgId: string): Promise; addEventListener(eventName: T, listener: Listeners[T]): void; removeEventListener(eventName: T, listener: Listeners[T]): void; removeAllEventListeners(): void; } export declare const createAgentStateInfoJsApi: () => AgentStateInfoJsapi; export {};