import { PreviewSession } from "../../../types/response.mjs";
//#region src/libs/toolkit/previews/state.d.ts
type MaybePromise<T> = T | Promise<T>;
type ToolkitPreviewSource = "query" | "stored" | "exit" | null;
type ToolkitPreviewStore = {
  /** Reads the raw preview token persisted by the frontend adapter. */get: () => MaybePromise<string | null | undefined>; /** Persists a validated perspective preview until its server-issued expiry. */
  set: (preview: {
    token: string;
    expiresAt: string;
  }) => MaybePromise<void>; /** Clears the frontend's persisted preview. */
  clear: () => MaybePromise<void>;
};
type ToolkitPreviewResponseHeaders = {
  /** Sets a response header on the host framework's current response. */set: (name: string, value: string) => MaybePromise<void>;
};
type ToolkitPreviewStateInput = {
  /** The current frontend request URL. */url: string | URL; /** Framework adapter for perspective-preview persistence. */
  session: ToolkitPreviewStore; /** Optional framework adapter used to apply preview response protections. */
  headers?: ToolkitPreviewResponseHeaders;
};
type ToolkitPreviewState = {
  active: boolean;
  token: string | null;
  source: ToolkitPreviewSource;
  preview: PreviewSession | null;
};
//#endregion
export { ToolkitPreviewResponseHeaders, ToolkitPreviewSource, ToolkitPreviewState, ToolkitPreviewStateInput, ToolkitPreviewStore };
//# sourceMappingURL=state.d.mts.map