import type { BasicLogger } from "@clinebot/shared";
import type { ITelemetryAdapter, TelemetryProperties } from "./ITelemetryAdapter";
export interface LoggerTelemetryAdapterOptions {
    logger?: BasicLogger;
    name?: string;
    enabled?: boolean | (() => boolean);
}
export declare class LoggerTelemetryAdapter implements ITelemetryAdapter {
    readonly name: string;
    private readonly logger?;
    private readonly enabled;
    constructor(options?: LoggerTelemetryAdapterOptions);
    emit(event: string, properties?: TelemetryProperties): void;
    emitRequired(event: string, properties?: TelemetryProperties): void;
    recordCounter(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
    recordHistogram(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
    recordGauge(name: string, value: number | null, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
    isEnabled(): boolean;
    flush(): Promise<void>;
    dispose(): Promise<void>;
}
//# sourceMappingURL=LoggerTelemetryAdapter.d.ts.map