import * as iframePhone from "iframe-phone"; import { ClientMessage, ICustomMessagesHandledMap, ISupportedFeaturesRequest, ServerMessage, OnUnloadFunction } from "./types"; import { ManagedState } from "./managed-state"; import { PubSubChannel } from "./pubsub"; export declare const getClient: () => Client; /** * This class is intended to provide basic helpers (like `post()` or `add/removeListener`), maintain client-specific * state, and generally be as minimal as possible. Most of the client-specific helpers and logic can be implemented * in api.ts or hooks.ts (or both so the client app has choice). */ export declare class Client { phone: iframePhone.IFrameEndpoint; managedState: ManagedState; customMessagesHandled: ICustomMessagesHandledMap; private listeners; private requestId; private onUnload; constructor(); getNextRequestId(): number; post(message: ClientMessage, content?: any): void; addListener(message: ServerMessage, callback: iframePhone.ListenerCallback, requestId?: number): boolean; removeListener(message: ServerMessage, requestId?: number, callback?: iframePhone.ListenerCallback): boolean; setSupportedFeatures: (request: ISupportedFeaturesRequest) => void; setOnUnload: (onUnload?: OnUnloadFunction<{}> | undefined) => void; createPubSubChannel(channelId: string, channelInfo?: any): PubSubChannel; private connect; }