import { type HrTime, type Span } from '@opentelemetry/api';
import type { ReasonSessionEnded } from '../../api-sessions/index.js';
import type { EmbraceSpanSessionManagerArgs, SessionEndedListener, SessionStartedListener, SpanSessionManagerInternal } from './types.js';
export declare class EmbraceSpanSessionManager implements SpanSessionManagerInternal {
    private _activeSessionId;
    private _activeSessionStartTime;
    private _sessionSpan;
    private _activeSessionCounts;
    private readonly _sessionStartedListeners;
    private readonly _sessionEndedListeners;
    private readonly _diag;
    private readonly _perf;
    private readonly _visibilityDoc;
    constructor({ diag: diagParam, perf, visibilityDoc, }?: EmbraceSpanSessionManagerArgs);
    addBreadcrumb(name: string): void;
    addProperty(key: string, value: string): void;
    endSessionSpan(): void;
    endSessionSpanInternal(reason: ReasonSessionEnded): void;
    getSessionId(): string | null;
    getSessionSpan(): Span | null;
    getSessionStartTime(): HrTime | null;
    startSessionSpan(): void;
    incrSessionCountForKey(key: string): void;
    addSessionStartedListener(listener: SessionStartedListener): () => void;
    addSessionEndedListener(listener: SessionEndedListener): () => void;
}
//# sourceMappingURL=EmbraceSpanSessionManager.d.ts.map