/// import { EventEmitter } from 'events'; import { Logger } from '../log/LogManager'; export declare class LifecycleState { static all: LifecycleState[]; static NOT_STARTED: LifecycleState; static STARTING: LifecycleState; static STARTED: LifecycleState; static STOPPING: LifecycleState; static STOPPED: LifecycleState; static getStatesBefore(val: LifecycleState): LifecycleState[]; private value; private name; constructor(name: string, value: number); toString(): string; getName(): string; getValue(): number; isAfter(other: LifecycleState): boolean; isAtOrAfter(other: LifecycleState): boolean; isBefore(other: LifecycleState): boolean; isAtOrBefore(other: LifecycleState): boolean; } export declare class LifecycleException extends Error { private context; constructor(message: string, context?: Object); getContext(): Object; } export declare abstract class Lifecycle extends EventEmitter { protected startTime: number; protected name: string; protected logger: Logger; protected status: LifecycleState; protected stopTime: number; constructor(name: any, logger: any); /** * Initiates the lifecycle of this object. * This is the method you should call before using the object * * @return {Promise} A promise that will resolve when this object's lifecycle has started */ lcStart(): Promise; lcStop(): Promise; setStatus(newStatus: LifecycleState, eventPayload?: Object): boolean; getName(): string; onState(state: LifecycleState, callback: Function): void; onStateOnce(state: LifecycleState, callback: Function): void; assertState(state: LifecycleState): void; getLogger(): Logger; copy(): Lifecycle; getStatus(): LifecycleState; protected setLogger(logger: any): void; /** * * @return {Promise} */ protected abstract doStart(): Promise; /** * Executes the actual logic necessary to stop the object * @return {Promise.} */ protected abstract doStop(): Promise; }