UNPKG

anux-common

Version:

[![Build Status](https://travis-ci.com/Anupheaus/anux-common.svg?branch=master)](https://travis-ci.com/Anupheaus/anux-common) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/dd0e0bd3a96247a5a78c02a812f949f8)](https://www.codacy.com/app/Anuphea

21 lines (20 loc) 1.03 kB
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 {};