import { VisibilityStateDocument } from "../../common/types.cjs";
import { LimitManagerInternal } from "../EmbraceLimitManager/types.cjs";
import { PerformanceManager } from "../../utils/PerformanceManager/types.cjs";
import { SpanSessionManager } from "../../api-sessions/manager/types.cjs";
import { DiagLogger } from "@opentelemetry/api";

//#region src/managers/EmbraceSpanSessionManager/types.d.ts
interface EmbraceSpanSessionManagerArgs {
  diag?: DiagLogger;
  perf?: PerformanceManager;
  visibilityDoc?: VisibilityStateDocument;
  storage?: Storage;
  limitManager: LimitManagerInternal;
}
interface SpanSessionManagerInternal extends SpanSessionManager {
  incrSessionCountForKey: (key: string) => void;
  incrNextSessionCountForKey: (key: string) => void;
}
type SessionStartedListener = () => void;
type SessionEndedListener = () => void;
//#endregion
export { EmbraceSpanSessionManagerArgs, SessionEndedListener, SessionStartedListener, SpanSessionManagerInternal };
//# sourceMappingURL=types.d.cts.map