UNPKG

wechaty-puppet

Version:

Abstract Puppet for Wechaty

117 lines 7.1 kB
import type { PuppetOptions, EventDirtyPayload } from '../schemas/mod.js'; import { DirtyType } from '../schemas/mod.js'; import { CacheAgent } from '../agents/mod.js'; import type { PuppetSkeleton } from '../puppet/mod.js'; /** * * Huan(202111) Issue #158 - Refactoring the 'dirty' event, dirtyPayload(), * and XXXPayloadDirty() methods logic & spec * * @see https://github.com/wechaty/puppet/issues/158 * */ declare const cacheMixin: <MixinBase extends typeof PuppetSkeleton & (abstract new (...args: any[]) => { __currentUserId?: string | undefined; readonly currentUserId: string; readonly isLoggedIn: boolean; __authQrCode?: string | undefined; readonly authQrCode: string | undefined; start(): Promise<void>; stop(): Promise<void>; /** * Huan(202111): we return first before emit the `dirty` event? */ login(userId: string): void; logout(reason?: string): Promise<void>; selfId(): string; logonoff(): boolean; readonly id: string; readonly options: PuppetOptions; wrapAsync: import("gerror/dist/esm/src/wrap-async-error/wrap-async-error.js").WrapAsync; /** * * @windmemory(202008): add dirty payload methods * * @see https://github.com/wechaty/grpc/pull/79 * * Call this method when you want to notify the server that the data cache need to be invalidated. */ emit(event: any, ...args: any): boolean; addListener<E extends keyof import("../puppet/events.js").PuppetEventListener>(event: E, listener: import("../puppet/events.js").PuppetEventListener[E]): any; on<E_1 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_1, listener: import("../puppet/events.js").PuppetEventListener[E_1]): any; once<E_2 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_2, listener: import("../puppet/events.js").PuppetEventListener[E_2]): any; prependListener<E_3 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_3, listener: import("../puppet/events.js").PuppetEventListener[E_3]): any; prependOnceListener<E_4 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_4, listener: import("../puppet/events.js").PuppetEventListener[E_4]): any; off<E_5 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_5, listener: import("../puppet/events.js").PuppetEventListener[E_5]): any; removeAllListeners<E_6 extends keyof import("../puppet/events.js").PuppetEventListener>(event?: E_6 | undefined): any; removeListener<E_7 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_7, listener: import("../puppet/events.js").PuppetEventListener[E_7]): any; eventNames(): (string | symbol)[]; rawListeners<E_8 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_8): Function[]; listeners<E_9 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_9): Function[]; listenerCount<E_10 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_10): number; getMaxListeners(): number; setMaxListeners(maxListeners: number): any; __events: import("../puppet/events.js").PuppetEventListener; })>(mixinBase: MixinBase) => (abstract new (...args: any[]) => { cache: CacheAgent; __cacheMixinCleanCallbackList: (() => void)[]; start(): Promise<void>; stop(): Promise<void>; /** * * @windmemory(202008): add dirty payload methods * * @see https://github.com/wechaty/grpc/pull/79 * * Call this method when you want to notify the server that the data cache need to be invalidated. */ dirtyPayload(type: DirtyType, id: string): void; /** * OnDirty will be registered as a `dirty` event listener, * and it will invalidate the cache. */ onDirty({ payloadType, payloadId, }: EventDirtyPayload): void; /** * When we are using PuppetService, the `dirty` event will be emitted from the server, * and we need to wait for the `dirty` event so we can make sure the cache has been invalidated. */ __dirtyPayloadAwait(type: DirtyType, id: string): Promise<void>; readonly id: string; readonly options: PuppetOptions; wrapAsync: import("gerror/dist/esm/src/wrap-async-error/wrap-async-error.js").WrapAsync; /** * * @windmemory(202008): add dirty payload methods * * @see https://github.com/wechaty/grpc/pull/79 * * Call this method when you want to notify the server that the data cache need to be invalidated. */ emit(event: any, ...args: any): boolean; addListener<E_11 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_11, listener: import("../puppet/events.js").PuppetEventListener[E_11]): any; on<E_12 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_12, listener: import("../puppet/events.js").PuppetEventListener[E_12]): any; once<E_13 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_13, listener: import("../puppet/events.js").PuppetEventListener[E_13]): any; prependListener<E_14 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_14, listener: import("../puppet/events.js").PuppetEventListener[E_14]): any; prependOnceListener<E_15 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_15, listener: import("../puppet/events.js").PuppetEventListener[E_15]): any; off<E_16 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_16, listener: import("../puppet/events.js").PuppetEventListener[E_16]): any; removeAllListeners<E_17 extends keyof import("../puppet/events.js").PuppetEventListener>(event?: E_17 | undefined): any; removeListener<E_18 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_18, listener: import("../puppet/events.js").PuppetEventListener[E_18]): any; eventNames(): (string | symbol)[]; rawListeners<E_8 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_8): Function[]; listeners<E_9 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_9): Function[]; listenerCount<E_10 extends keyof import("../puppet/events.js").PuppetEventListener>(event: E_10): number; getMaxListeners(): number; setMaxListeners(maxListeners: number): any; __events: import("../puppet/events.js").PuppetEventListener; __currentUserId?: string | undefined; readonly currentUserId: string; readonly isLoggedIn: boolean; __authQrCode?: string | undefined; readonly authQrCode: string | undefined; login(userId: string): void; logout(reason?: string): Promise<void>; selfId(): string; logonoff(): boolean; }) & MixinBase; declare type CacheMixin = ReturnType<typeof cacheMixin>; declare type ProtectedPropertyCacheMixin = 'cache' | 'onDirty' | '__cacheMixinCleanCallbackList' | '__dirtyPayloadAwait'; export type { CacheMixin, ProtectedPropertyCacheMixin, }; export { cacheMixin }; //# sourceMappingURL=cache-mixin.d.ts.map