import { RealtimePassAuthorizer } from "./lease-client.js"; import { MutationClient, type MutationOperation, type MutationSubmission } from "./mutation-client.js"; import { type RealtimeCapabilityVector } from "./realtime-rollout.js"; export declare const SYNC_MUTATION_NOT_ENROLLED_EXIT = 3; export declare class SyncMutationNotEnrolledError extends Error { constructor(); } export interface LocalMutationChange { canonicalPath: string; op: MutationOperation; bytes?: Uint8Array; } export interface LocalMutationSessionDeps { apiUrl?: string; hqRoot?: string; getAccessToken?: () => Promise; resolvePersonalScopeUid?: (bearer: string) => Promise; createMutationClient?: (apiUrl: string) => Pick; authorizer?: Pick; resolveBaseVersion?: (input: { apiUrl: string; hqRoot: string; scopeUid: string; canonicalPath: string; }) => string | null; deviceId?: string; capabilityVector?: RealtimeCapabilityVector; } /** * Builds complete V2 requests from one local enrolled session. A fresh lease * is issued for every submission; stale/revoked inventory never falls back to * a legacy path. */ export declare class LocalEnrolledMutationSession { private readonly apiUrl; private readonly hqRoot; private readonly getAccessToken; private readonly resolvePersonalScopeUid; private readonly mutationClient; private readonly authorizer; private readonly deviceId; private readonly capabilityVector; private readonly resolveBaseVersion; constructor(deps?: LocalMutationSessionDeps); submit(change: LocalMutationChange): Promise; private resumePlan; private submitPlan; } //# sourceMappingURL=mutation-session.d.ts.map