import "../index.js";
import { ExtendedSpan } from "../../../api-traces/api/TraceAPI/types.js";
import "../../../index.js";
import { PropertyOptions, ReasonSessionEnded, SessionPartStartedEvent, StartSessionOptions } from "../types.js";
import { EndSessionPartOptions, RolloverSessionPartOptions, StartSessionPartOptions, UserSessionAttributes, UserSessionManagerInternal } from "../../../managers/EmbraceUserSessionManager/types.js";
import { TracerProvider } from "@opentelemetry/api";
//#region src/api-sessions/manager/ProxyUserSessionManager/ProxyUserSessionManager.d.ts
declare class ProxyUserSessionManager implements UserSessionManagerInternal {
  private _delegate?;
  getDelegate(): UserSessionManagerInternal;
  setDelegate(delegate: UserSessionManagerInternal): void;
  addBreadcrumb(name: string): void;
  addProperty(key: string, value: string, options?: PropertyOptions): void;
  removeProperty(key: string): void;
  endSessionSpan(): void;
  /** @deprecated Will be removed in a future major version, always returns null. */
  currentSessionAsReadableSpan(reason: ReasonSessionEnded): null;
  /** @deprecated Will be removed in a future version, use getUserSessionId(); returns null when no user session is active. */
  getSessionId(): string | null;
  /** @deprecated Will be removed in a future version, always returns null. Use getPreviousUserSessionId(). */
  getPreviousSessionId(): null;
  /** @deprecated Will be removed in a future version, use getSessionPartSpan(); returns null when no part is active. */
  getSessionSpan(): ExtendedSpan | null;
  /** @deprecated Will be removed in a future version, use getUserSessionStartTime(); returns null when no user session is active. */
  getSessionStartTime(): number | null;
  /** @deprecated Will be removed in a future version, no-op. */
  startSessionSpan(_options?: StartSessionOptions): void;
  /** @deprecated Will be removed in a future version, the returned unsubscribe is a no-op. */
  addSessionStartedListener(_listener: () => void): () => void;
  /** @deprecated Will be removed in a future version, the returned unsubscribe is a no-op. */
  addSessionEndedListener(_listener: () => void): () => void;
  getUserSessionId(): string | null;
  getPreviousUserSessionId(): string | null;
  getUserSessionStartTime(): number | null;
  endUserSession(): void;
  getUserSessionAttributes(): UserSessionAttributes | null;
  getSessionPartProperties(): Record<string, string>;
  getSessionPartId(): string | null;
  getSessionPartSpan(): ExtendedSpan | null;
  startSessionPartInternal(options: StartSessionPartOptions): void;
  endSessionPartInternal(options: EndSessionPartOptions): void;
  rolloverSessionPartInternal(options: RolloverSessionPartOptions): void;
  incrSessionPartCountForKey(key: string): void;
  incrNextSessionPartCountForKey(key: string): void;
  addSessionPartStartedListener(listener: (event: SessionPartStartedEvent) => void): () => void;
  addSessionPartEndedListener(listener: () => void): () => void;
  setTracerProvider(tracerProvider: TracerProvider): void;
}
//#endregion
export { ProxyUserSessionManager };
//# sourceMappingURL=ProxyUserSessionManager.d.ts.map