import { AgentxService } from "../internal-types"; import { createJsApiLogger } from "./common/_logger"; type Listeners = { inited: () => void; cleaned: () => void; }; type Events = keyof Listeners; type ConfigType = { /** * Name of the widget */ widgetName: string; /** * Name of the widget provider/owner/customer */ widgetProvider: string; }; type CrmConnectorProvider = { /** * Name of the CRM provider, e.g. "salesforce", "microsoft-dynamics", "oracle", "sap", "zendesk", "freshdesk", "freshservice", "freshsales", "hubspot", "pipedrive" */ crmPlatform?: string; /** * Name of the CRM connector provider, e.g. "cisco" */ crmConnectorProvider?: string; }; export declare class ConfigJsApi { private initEventType; private readonly emitter; private readonly logger; private agentxSERVICE?; private waitUntil; constructor(config: { logger: ReturnType; SERVICE: AgentxService; }); private checkService; private emit; /** * initialize wxcc-desktop js sdk * @param config * @example * `` * Desktop.config.init({widgetName: "widgetName", widgetProvider: "widgetProvider"}); * `ts */ init(config: ConfigType): Promise; /** * Register CRM Connector * @param provider * @example * `` * Desktop.config.init({widgetName: "widgetName", widgetProvider: "widgetProvider"}); * config.registerCrmConnector({ crmConnectorProvider: "Cisco", crmPlatform: "SFDC"}); * `ts */ registerCrmConnector(provider: CrmConnectorProvider): void; private publishEvent; cleanup(): void; get clientLocale(): string; addEventListener(eventName: T, listener: Listeners[T]): void; removeEventListener(eventName: T, listener: Listeners[T]): void; } export declare const createConfigJsApi: (SERVICE: AgentxService) => ConfigJsApi; export {};