///
declare namespace Leaf {
type TStateDefaultEnum = "void" | "panic";
class States extends EventEmitter {
state: TStateEnum | TStateDefaultEnum;
previousState: TStateEnum | TStateDefaultEnum;
private sole;
private soleEmitted;
private lastException;
private rescues;
protected data: any;
private feeds;
private isDebugging;
private clearHandler;
readonly name: string;
panicError: Error;
panicState: TStateEnum | TStateDefaultEnum;
constructor();
reset(): void;
setState(state: TStateEnum | TStateDefaultEnum, ...args: any[]): void;
private _setState(state, ...args);
error(err: Error): void;
protected atPanic(): void;
recover(recoverState?: TStateEnum | TStateDefaultEnum): {
error: Error;
state: TStateEnum | "void" | "panic";
};
respawn(): void;
clear(handler?: {
(): void;
}): void;
private ensureFeed(name);
feed(name: TSignalEnum, signal?: any): void;
consumeAll(name: string): number;
hasFeed(name: string): boolean;
consume(name: string): boolean | any;
consumeWhenAvailableMergeToLast(name: TSignalEnum, callback: {
(signal: any): void;
}): void;
consumeWhenAvailable(name: TSignalEnum, callback: {
(signal: any): void;
}): void;
debug(option?: any): void;
private debugStateHandler(option?, message?);
}
}