import { Attributes, Context, Span, SpanOptions } from '@opentelemetry/api';
import { BrowserTracingConfig } from '../client/otel';
import type { Observe } from '../api/observe';
import { ErrorMessageType } from '../client/types/shared-types';
import { type Hook, type LDClient } from '../integrations/launchdarkly';
import type { OTelMetric as Metric } from '../client/types/types';
import { ConsoleMethods } from '../client/types/client';
import { LDPluginEnvironmentMetadata } from '../plugins/plugin';
export declare class ObserveSDK implements Observe {
    private readonly sessionSecureID;
    private readonly _integrations;
    private readonly _gauges;
    private readonly _counters;
    private readonly _histograms;
    private readonly _up_down_counters;
    constructor(options: BrowserTracingConfig);
    recordLog(message: any, level: ConsoleMethods, metadata?: Attributes): void;
    recordError(error: Error, message?: string, payload?: {
        [key: string]: string;
    }, source?: string, type?: ErrorMessageType): void;
    recordCount(metric: Metric): void;
    recordGauge(metric: Metric): void;
    recordIncr(metric: Omit<Metric, 'value'>): void;
    recordHistogram(metric: Metric): void;
    recordUpDownCounter(metric: Metric): void;
    startSpan(name: string, options: SpanOptions | ((span?: Span) => any), context?: Context | ((span?: Span) => any), fn?: (span?: Span) => any): any;
    startManualSpan(name: string, options: SpanOptions | ((span: Span) => any), context?: Context | ((span: Span) => any), fn?: (span: Span) => any): any;
    register(client: LDClient, metadata: LDPluginEnvironmentMetadata): void;
    getHooks(metadata: LDPluginEnvironmentMetadata): Hook[];
    private setupListeners;
}
