import { BufferConfig, Span } from '@opentelemetry/sdk-trace-base';
import { BatchSpanProcessorBase } from '@opentelemetry/sdk-trace-base/build/src/export/BatchSpanProcessorBase';
import type { Attributes } from '@opentelemetry/api';
import { NodeSDK } from '@opentelemetry/sdk-node';
import { NodeOptions } from './types';
declare class CustomSpanProcessor extends BatchSpanProcessorBase<BufferConfig> {
    private _listeners;
    constructor(config: any, options: any);
    onShutdown(): void;
    forceFlush(): Promise<void>;
    registerListener(listener: () => void): () => boolean;
}
export declare class Highlight {
    readonly FLUSH_TIMEOUT_MS: number;
    _projectID: string;
    _debug: boolean;
    otel: NodeSDK;
    private tracer;
    private processor;
    constructor(options: NodeOptions);
    get activeSpanProcessor(): CustomSpanProcessor;
    get finishedSpans(): Span[];
    stop(): Promise<void>;
    _log(...data: any[]): void;
    recordMetric(secureSessionId: string, name: string, value: number, requestId?: string, tags?: {
        name: string;
        value: string;
    }[]): void;
    log(date: Date, msg: string, level: string, stack: object, secureSessionId?: string, requestId?: string, metadata?: Attributes): void;
    consumeCustomError(error: Error, secureSessionId: string | undefined, requestId: string | undefined, metadata?: Attributes): void;
    flush(): Promise<void>;
    waitForFlush(): Promise<void>;
    setAttributes(attributes: Attributes): void;
}
export {};
//# sourceMappingURL=client.d.ts.map