import { NamespacedStorage } from "../../../utils/NamespacedStorage/NamespacedStorage.cjs";
import "../../../utils/index.cjs";
import { UserSessionState } from "../types.cjs";
import { DiagLogger } from "@opentelemetry/api";
//#region src/managers/EmbraceUserSessionManager/utils/state.d.ts
/**
 * True when the stored state is no longer trustworthy: the device clock
 * jumped backwards past the recorded start, the max-duration deadline has
 * passed, or an inactivity deadline (set when the last part ended) has
 * passed. Inactivity only applies between parts; the deadline is null
 * while a part is active.
 */
declare const isUserSessionExpired: (state: UserSessionState, now: number) => boolean;
interface CreateUserSessionStateArgs {
  now: number;
  previousUserSessionId: string | null;
  userSessionMaxDurationSeconds: number;
  userSessionInactivityTimeoutSeconds: number;
  userSessionForegroundInactivityTimeoutSeconds: number;
  userSessionNumber: number;
}
declare const createUserSessionState: ({ now, previousUserSessionId, userSessionMaxDurationSeconds, userSessionInactivityTimeoutSeconds, userSessionForegroundInactivityTimeoutSeconds, userSessionNumber }: CreateUserSessionStateArgs) => UserSessionState;
declare const readUserSessionState: (storage: NamespacedStorage, diag: DiagLogger) => UserSessionState | null;
declare const readPermanentProperties: (storage: NamespacedStorage, diag: DiagLogger) => Record<string, string>;
/**
 * Empty blobs are removed rather than written so storage stays tidy when
 * the last property is cleared. Returns false on a failed write; callers
 * gate cross-scope flips on this so a failed permanent write doesn't
 * strip the previously-visible user-session-scoped value.
 */
declare const storePermanentProperties: (storage: NamespacedStorage, properties: Record<string, string>) => boolean;
//#endregion
export { CreateUserSessionStateArgs, createUserSessionState, isUserSessionExpired, readPermanentProperties, readUserSessionState, storePermanentProperties };
//# sourceMappingURL=state.d.cts.map