import type Koa from "koa";
interface HealthLinks {
    [key: string]: string;
}
interface HealthDetail {
    status?: "pass" | "warn" | "fail";
    componentId?: string;
    componentType?: "component" | "datastore" | "system";
    metricValue?: unknown;
    metricUnit?: string;
    time?: string;
    output?: string;
    links?: HealthLinks;
}
interface HealthDetails {
    [key: string]: HealthDetail | Array<HealthDetail>;
}
export interface Health {
    status: "pass" | "warn" | "fail";
    version?: string;
    releaseID?: string;
    notes?: Array<string>;
    output?: string;
    details?: HealthDetails;
    links?: HealthLinks;
    serviceID?: string;
    description?: string;
}
declare function defaultHealth(_: Koa.Context): Promise<boolean | Health>;
export declare function health(getHealth?: typeof defaultHealth): Koa.Middleware;
export {};
