UNPKG

@sprucelabs/mercury-client

Version:

The simple way to interact with the Spruce Experience Platform

58 lines (57 loc) 2.75 kB
import { AbstractEventEmitter } from '@sprucelabs/mercury-event-emitter'; import { EventContract, EventName, MercuryAggregateResponse, SkillEventContract, SpruceSchemas } from '@sprucelabs/mercury-types'; import { Schema } from '@sprucelabs/schema'; import MutableContractClient from './MutableContractClient'; declare class InternalEmitter<Contract extends EventContract> extends AbstractEventEmitter<Contract> { doesHandleEvent(eventName: string): boolean; protected validateEmitPayload(schema: Schema | undefined | null, actualPayload: any, eventName: string): void; mixinOnlyUniqueSignatures(contract: EventContract): void; overrideSignatures(contract: EventContract): void; getContract(): SpruceSchemas.Mercury.v2020_12_25.EventContract; setContract(contract: Contract): void; } export default class MercuryTestClient< /** @ts-ignore */ Contract extends EventContract = SkillEventContract> extends MutableContractClient<Contract> { private static emitter; private _isConnected; private isConnectedToApi; private connectPromise?; private static shouldCheckPermissionsOnLocalEvents; private shouldHandleAuthenticateLocallyIfListenerSet; private static namespacesThatHaveToBeHandledLocally; private shouldWaitForDelayedConnectIfAuthing; private static shouldRequireLocalListeners; protected get eventContract(): Contract; protected set eventContract(contract: Contract); static setShouldCheckPermissionsOnLocalEvents(should: boolean): void; static setNamespacesThatMustBeHandledLocally(namespaces: string[]): void; static getNamespacesThatMustBeHandledLocally(): string[]; constructor(options: Record<string, any> & { host: string; eventContract?: Contract; }); /** @ts-ignore */ static getInternalEmitter(contract?: EventContract): InternalEmitter<SkillEventContract>; off(eventName: EventName<Contract>, cb?: any): Promise<number>; static mixinContract(contract: EventContract): void; mixinContract(contract: EventContract): void; doesHandleEvent(eventName: string): boolean; on(...args: any[]): Promise<void>; emit(...args: any[]): Promise<MercuryAggregateResponse<any>>; private shouldHandleEventLocally; private handleEventLocally; private assertValidEventSignature; private optionallyCheckPermissions; private buildSource; private connectIfNotConnected; private delayedConnectAndAuth; connect(): Promise<void>; isConnected(): boolean; disconnect(): Promise<void>; static reset(): void; getIsTestClient(): boolean; static setShouldRequireLocalListeners(shouldRequire: boolean): void; static getShouldRequireLocalListeners(): boolean; } export {};