UNPKG

@signalwire/core

Version:
101 lines 5.14 kB
import type { Task } from '@redux-saga/types'; import { Action } from './redux'; import { ExecuteParams, BaseComponentOptions, ExecuteExtendedOptions, SDKWorker, SDKWorkerDefinition, SessionAuthStatus, SDKWorkerHooks, Authorization } from './utils/interfaces'; import { EventEmitter } from './utils/EventEmitter'; import { SDKState } from './redux/interfaces'; import { OnlyStateProperties, EmitterContract, BaseComponentContract } from './types'; export declare const SW_SYMBOL: unique symbol; export declare class BaseComponent<EventTypes extends EventEmitter.ValidEventTypes, StateProperties = Record<string, unknown>> implements EmitterContract<EventTypes>, BaseComponentContract { options: BaseComponentOptions; /** @internal */ __sw_symbol: symbol; /** @internal */ private readonly uuid; /** @internal */ get __uuid(): string; private _customSagaTriggers; private _destroyer?; private eventEmitter; /** * List of running Tasks to be cancelled on `destroy`. */ private _runningWorkers; get logger(): import("./utils/interfaces").InternalSDKLogger; /** * Map of Sagas that will be attached to the Store to * handle events or perform side-effects. This Map will * behave as a queue and will be emptied once the workers * have been attached. See `this.attachWorkers` for * details. */ protected _workers: Map<string, { worker: SDKWorker<any>; }>; constructor(options: BaseComponentOptions); /** @internal */ set destroyer(d: () => void); /** @internal */ get store(): { runSaga: <T>(saga: import("@redux-saga/types").Saga, args: { instance: T; runSaga: any; }) => Task<any>; channels: import("./utils/interfaces").InternalChannels; instanceMap: import("./utils/interfaces").InstanceMap; sessionEmitter: EventEmitter<import("./utils/interfaces").ClientEvents, any>; dispatch: import("redux").Dispatch<import("redux").AnyAction>; getState(): any; subscribe(listener: () => void): import("redux").Unsubscribe; replaceReducer(nextReducer: import("redux").Reducer<any, import("redux").AnyAction>): void; [Symbol.observable](): import("redux").Observable<any>; }; /** @internal */ get instanceMap(): import("./utils/interfaces").InstanceMap; /** @internal */ get emitter(): EventEmitter<EventTypes, any>; /** @internal */ get sessionEmitter(): EventEmitter<import("./utils/interfaces").ClientEvents, any>; /** @internal */ get session(): EventEmitter<import("./utils/interfaces").ClientEvents, any>; on<T extends EventEmitter.EventNames<EventTypes>>(event: T, fn: EventEmitter.EventListener<EventTypes, T>): EventEmitter<EventTypes, any>; once<T extends EventEmitter.EventNames<EventTypes>>(event: T, fn: EventEmitter.EventListener<EventTypes, T>): EventEmitter<EventTypes, any>; off<T extends EventEmitter.EventNames<EventTypes>>(event: T, fn?: EventEmitter.EventListener<EventTypes, T>): EventEmitter<EventTypes, any>; removeAllListeners<T extends EventEmitter.EventNames<EventTypes>>(event?: T): EventEmitter<EventTypes, any>; /** @internal */ eventNames(): EventEmitter.EventNames<EventTypes>[]; /** @internal */ sessionEventNames(): ("session.unknown" | "session.idle" | "session.reconnecting" | "session.connected" | "session.disconnecting" | "session.disconnected" | "session.auth_error" | "session.expiring")[]; protected getSubscriptions(): EventEmitter.EventNames<EventTypes>[]; /** @internal */ emit<E extends EventEmitter.EventNames<EventTypes>>(event: E, ...args: EventEmitter.EventArgs<EventTypes, E>): boolean; /** @internal */ listenerCount<T extends EventEmitter.EventNames<EventTypes>>(event: T): number; destroy(): void; /** @internal */ execute<InputType = unknown, OutputType = unknown, ParamsType = Record<string, any>>({ method, params }: ExecuteParams, { transformParams, transformResolve, transformReject, }?: ExecuteExtendedOptions<InputType, OutputType, ParamsType>): Promise<OutputType>; /** @internal */ triggerCustomSaga<T>(action: Action): Promise<T>; /** @internal */ settleCustomSagaTrigger<T>({ dispatchId, payload, kind, }: { dispatchId: string; payload?: T; kind: 'resolve' | 'reject'; }): void; /** @internal */ select<T>(selectorFn: (state: SDKState) => T): T; /** @internal */ getStateProperty(param: keyof OnlyStateProperties<StateProperties>): any; /** @internal */ protected get _sessionAuthStatus(): SessionAuthStatus; /** @internal */ protected get _sessionAuthorization(): Authorization | undefined; /** @internal */ protected _waitUntilSessionAuthorized(): Promise<this>; /** @internal */ runWorker<Hooks extends SDKWorkerHooks = SDKWorkerHooks>(name: string, def: SDKWorkerDefinition<Hooks>): Task<any>; cancelWorker(workerTask: Task): void; private _setWorker; private _attachWorker; private detachWorkers; } //# sourceMappingURL=BaseComponent.d.ts.map