/// <reference types="node" />
import { IncomingMessage } from 'http';
import Application from 'koa';
import { MonitorBase, Tracer } from './MonitorBase';
import { Logger, LogLevel, Monitor } from './types';
export interface NodeMonitorCreate {
    readonly service: string;
    readonly logger?: Logger;
    readonly tracer?: Tracer;
    readonly spanLogLevel?: LogLevel;
}
export declare class NodeMonitor extends MonitorBase {
    static create({ service, logger, tracer, spanLogLevel }: NodeMonitorCreate): NodeMonitor;
    private mutableServer;
    forContext(ctx: Application.Context): Monitor;
    forMessage(message: IncomingMessage): Monitor;
    serveMetrics(port: number): void;
    protected closeInternal(): Promise<void>;
}
