import type { Observe } from '../api/observe';
import type { LDClient } from '../integrations/launchdarkly';
import type { ErrorMessageType } from '../client/types/shared-types';
import type { OTelMetric as Metric } from '../client/types/types';
import type { Attributes } from '@opentelemetry/api';
import type { LDPluginEnvironmentMetadata } from '../plugins/plugin';
import { BufferedClass } from './buffer';
declare class _LDObserve extends BufferedClass<Observe> implements Observe {
    recordGauge(metric: Metric): any;
    recordCount(metric: Metric): any;
    recordIncr(metric: Omit<Metric, 'value'>): any;
    recordHistogram(metric: Metric): any;
    recordUpDownCounter(metric: Metric): any;
    startSpan(): any;
    startManualSpan(): any;
    register(client: LDClient, environmentMetadata: LDPluginEnvironmentMetadata): any;
    recordLog(message: any, level: string, metadata?: Attributes): any;
    recordError(error: Error, message?: string, payload?: {
        [key: string]: string;
    }, source?: string, type?: ErrorMessageType): any;
}
export declare let LDObserve: _LDObserve;
export {};
