UNPKG

2.21 kBTypeScriptView Raw
1/// <reference types="react" />
2import { Id, ToastContent, ClearWaitingQueueParams, NotValidatedToastProps } from '../types';
3import { ContainerInstance } from '../hooks';
4export declare const enum Event {
5 Show = 0,
6 Clear = 1,
7 DidMount = 2,
8 WillUnmount = 3,
9 Change = 4,
10 ClearWaitingQueue = 5
11}
12declare type OnShowCallback = (content: ToastContent, options: NotValidatedToastProps) => void;
13declare type OnClearCallback = (id?: Id) => void;
14declare type OnClearWaitingQueue = (params: ClearWaitingQueueParams) => void;
15declare type OnDidMountCallback = (containerInstance: ContainerInstance) => void;
16declare type OnWillUnmountCallback = OnDidMountCallback;
17export declare type OnChangeCallback = (toast: number, containerId?: number | string) => void;
18declare type Callback = OnShowCallback | OnClearCallback | OnClearWaitingQueue | OnDidMountCallback | OnWillUnmountCallback | OnChangeCallback;
19declare type TimeoutId = ReturnType<typeof setTimeout>;
20export interface EventManager {
21 list: Map<Event, Callback[]>;
22 emitQueue: Map<Event, TimeoutId[]>;
23 on(event: Event.Show, callback: OnShowCallback): EventManager;
24 on(event: Event.Clear, callback: OnClearCallback): EventManager;
25 on(event: Event.ClearWaitingQueue, callback: OnClearWaitingQueue): EventManager;
26 on(event: Event.DidMount, callback: OnDidMountCallback): EventManager;
27 on(event: Event.WillUnmount, callback: OnWillUnmountCallback): EventManager;
28 on(event: Event.Change, callback: OnChangeCallback): EventManager;
29 off(event: Event, callback?: Callback): EventManager;
30 cancelEmit(event: Event): EventManager;
31 emit(event: Event.Show, content: React.ReactNode, options: NotValidatedToastProps): void;
32 emit(event: Event.Clear, id?: string | number): void;
33 emit(event: Event.ClearWaitingQueue, params: ClearWaitingQueueParams): void;
34 emit(event: Event.DidMount, containerInstance: ContainerInstance): void;
35 emit(event: Event.WillUnmount, containerInstance: ContainerInstance): void;
36 emit(event: Event.Change, toast: number, containerId?: number | string): void;
37}
38export declare const eventManager: EventManager;
39export {};