import { ENTITY_TYPE } from './constant'; import EntityModel, { IContextData } from './entity-model'; import { IApiOptions, IRefreshTargetMessage, ISdkInitOptions } from './interfaces'; export default class Copper { private parentOrigin; private instanceId; private options; private _win; static init(): Copper; static get version(): string; /** * store deferred queues by name */ private deferredQueues; /** * store event callbacks by event name */ private events; private _context; /** * Creates an instance of Copper. * @param {*} [_win=window] has to be any type to support testing * @memberof Copper */ constructor(parentOrigin: string, instanceId: string, options: ISdkInitOptions, _win?: any); get win(): Window; getContext(): Promise; getUserInfo(): Promise; getRouteInfo(): Promise; saveContext(context: EntityModel): Promise; setAppUI(data: {}): void; showModal(params?: {}): void; closeModal(): void; showFullScreen(): void; closeFullScreen(): void; /** * Allows developer to send message to another instance of its app * e.g. Sending data from modal to sidebar, so sidebar can display some data immediately * * @param target another instance/location of the app. '*' means broadcast to all other locations. */ publishMessage(messageType: string, target: string, msg?: {}): void; logActivity(activityType: number, details: string, activityDate?: number, refreshDelay?: number): Promise; createEntity(entityType: ENTITY_TYPE, entityData: object, refreshDelay?: number): Promise; relateEntity(entityType: ENTITY_TYPE, entityId: number, relateData: { id: number; type: ENTITY_TYPE; }, refreshDelay?: number): Promise; refreshUI(target: IRefreshTargetMessage): void; on(eventName: string, cb: () => any): void; trigger(eventName: string, data: {}): void; api(url: string, options?: IApiOptions): Promise; navigateToEntityDetail(entityType: string, entityId: number): Promise; navigateToSavedFilter(entityType: string, savedFilterId: number, pipelineId?: number, openEmailAutomationForm?: boolean): Promise; getSelectedRecords({ pageSize, pageNumber }?: { pageSize?: number | undefined; pageNumber?: number | undefined; }): Promise; getConfig(): Promise<{ appConfig: any; config: any; }>; private _getCachedContext; private _postMessage; private _listenMessage; private _isOriginValid; private _enqueueDeferred; private _resolveDeferred; private _createContextModel; private _action; private _createDeferredMethod; private _deferredPost; private _subscribeContextUpdated; }