///
export declare const HEALTH_CHECK_GROUP = "inceptum:health";
export declare function RegisterAsHealthCheck(target: any): void;
export declare enum HealthCheckStatus {
OK = "OK",
NOT_READY = "NOT_READY",
WARNING = "WARNING",
CRITICAL = "CRITICAL",
STOPPING = "STOPPING",
}
export declare enum HealthCheckType {
CONTEXT = 0,
DEPENDENCY = 1,
GROUP = 2,
}
export declare class HealthCheckResult {
status: HealthCheckStatus;
message: string;
data: any;
timestamp: number;
constructor(status: HealthCheckStatus, message: string, timestamp?: number, data?: any);
static getInitialResult(): HealthCheckResult;
static staleResult(healthCheck: HealthCheck, lastResult: HealthCheckResult): HealthCheckResult;
}
export declare abstract class HealthCheck {
checkName: string;
sleepMillis: number;
staleNumFails: number;
private runImmediately;
started: boolean;
lastResult: HealthCheckResult;
timer: NodeJS.Timer;
checkRunning: boolean;
constructor(checkName: string, sleepMillis?: number, staleNumFails?: number, runImmediately?: boolean);
abstract getType(): HealthCheckType;
getCheckName(): string;
getSleepMillis(): number;
start(): void;
runCheck(): Promise;
doStart(): void;
stop(): void;
doStop(): void;
isStarted(): boolean;
abstract doCheck(): Promise;
getLastResult(): HealthCheckResult;
}
export declare class HealthCheckGroup extends HealthCheck {
groupKey: string;
healthChecks: Map;
constructor(groupName: string);
addCheck(healthCheck: HealthCheck, asName?: string): void;
addCheckAs(healthCheck: HealthCheck, asName: string): void;
doStart(): void;
doStop(): void;
doCheck(): Promise;
getLastResult(): HealthCheckResult;
/**
* Ignore dependencies CRITICAL status. It is not considered
* to be part of App's health.
*/
protected ignoreHealthCheckStatus(hc: HealthCheck, status: HealthCheckStatus): boolean;
getType(): HealthCheckType;
}