1 |
|
2 | import { Id, ToastContent, ClearWaitingQueueParams, NotValidatedToastProps } from '../types';
|
3 | import { ContainerInstance } from '../hooks';
|
4 | export declare const enum Event {
|
5 | Show = 0,
|
6 | Clear = 1,
|
7 | DidMount = 2,
|
8 | WillUnmount = 3,
|
9 | Change = 4,
|
10 | ClearWaitingQueue = 5
|
11 | }
|
12 | declare type OnShowCallback = (content: ToastContent, options: NotValidatedToastProps) => void;
|
13 | declare type OnClearCallback = (id?: Id) => void;
|
14 | declare type OnClearWaitingQueue = (params: ClearWaitingQueueParams) => void;
|
15 | declare type OnDidMountCallback = (containerInstance: ContainerInstance) => void;
|
16 | declare type OnWillUnmountCallback = OnDidMountCallback;
|
17 | export declare type OnChangeCallback = (toast: number, containerId?: number | string) => void;
|
18 | declare type Callback = OnShowCallback | OnClearCallback | OnClearWaitingQueue | OnDidMountCallback | OnWillUnmountCallback | OnChangeCallback;
|
19 | declare type TimeoutId = ReturnType<typeof setTimeout>;
|
20 | export 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 | }
|
38 | export declare const eventManager: EventManager;
|
39 | export {};
|