import { WrapperGS } from './WrapperGS'; export interface Disposable { dispose(): any; } export interface Handler { (event?: T): any; } export interface HandlerAsync { (event?: T): Promise; } export declare class EventGSHandlerDisposable implements Disposable { constructor(wrapper: WrapperGS, event: string, eventHandler: (event: any) => void); readonly wrapper: WrapperGS; readonly eventHandler: (event: any) => void; readonly event: string; dispose(): void; } /**Return private invoke function ouside to initializer*/ export declare class EventGSToken { private readonly _hasHandlersCallback; /** * @param hasHandlersCallback Invoke then event add first handler. Use for assign pipe listeners only when it need (another one start listen) */ constructor(hasHandlersCallback?: () => void); invoke: Handler; /** Invoke then event add first handler. Use for assign pipe listeners only when it need (another one start listen)*/ get hasHandlersCallback(): (() => void) | undefined; } /**Return private invoke function ouside to initializer*/ export declare class EventAsyncGSToken { private readonly _hasHandlersCallback; /** * @param hasHandlersCallback Invoke then event add first handler. Use for assign pipe listeners only when it need (another one start listen) */ constructor(hasHandlersCallback?: () => void); invoke: HandlerAsync; /** Invoke then event add first handler. Use for assign pipe listeners only when it need (another one start listen)*/ get hasHandlersCallback(): (() => void) | undefined; } export declare class EventGS { private readonly _handlers; private readonly _handlersOnce; private _sourceInitialized; private readonly _token; constructor(token: EventGSToken); addHandler(listener: Handler): Disposable; addOnceHandler(listener: Handler): Disposable; removeHandler(handler: Handler): void; private invoke; private checkFirstHandler; } export declare class EventAsyncGS { private _handlers; private _handlersOnce; private _sourceInitialized; private readonly _token; constructor(token: EventAsyncGSToken); addHandler(listener: HandlerAsync): Disposable; addOnceHandler(listener: HandlerAsync): Disposable; removeHandler(handler: HandlerAsync): void; private invokeAsync; private checkFirstHandler; }