anux-common
Version:
[](https://travis-ci.com/Anupheaus/anux-common) [](https://www.codacy.com/app/Anuphea
21 lines (20 loc) • 1.03 kB
TypeScript
import '../extensions/array';
import { PromiseMaybe } from '../extensions/global';
export declare type EventDefinition = (...args: any[]) => PromiseMaybe;
export declare type Unsubscribe = () => void;
export interface ICreateEventSubscribeOptions {
immediatelyInvoke?: boolean;
}
export interface ICreateEvent<TEventDefinition extends EventDefinition> {
invoke: TEventDefinition;
isEnabled: boolean;
subscribe(delegate: TEventDefinition): Unsubscribe;
subscribe(delegate: TEventDefinition, subscriptionOptions: ICreateEventSubscribeOptions): Unsubscribe;
dispose(): void;
}
interface ICreateEventOptions<TEventDefinition extends EventDefinition> {
onSubscribe?(delegate: TEventDefinition): void;
}
export declare function createEvent<TEventDefinition extends EventDefinition>(): ICreateEvent<TEventDefinition>;
export declare function createEvent<TEventDefinition extends EventDefinition>(options: ICreateEventOptions<TEventDefinition>): ICreateEvent<TEventDefinition>;
export {};