import type { acquireSessionWriteLock } from "../../session-write-lock.js"; type SessionLock = Awaited>; type AcquireSessionWriteLock = typeof acquireSessionWriteLock; type LockOptions = { sessionFile: string; timeoutMs: number; staleMs: number; maxHoldMs: number; }; export declare class EmbeddedAttemptSessionTakeoverError extends Error { constructor(sessionFile: string); } export declare function installSessionEventWriteLock(params: { session: unknown; withSessionWriteLock: (run: () => Promise | T) => Promise; }): void; export declare function installSessionExternalHookWriteLock(params: { session: unknown; withSessionWriteLock: (run: () => Promise | T) => Promise; }): void; export type EmbeddedAttemptSessionLockController = { releaseForPrompt(): Promise; waitForSessionEvents(session: unknown): Promise; withSessionWriteLock(run: () => Promise | T): Promise; acquireForCleanup(params?: { session?: unknown; }): Promise; hasSessionTakeover(): boolean; }; export declare function createEmbeddedAttemptSessionLockController(params: { acquireSessionWriteLock: AcquireSessionWriteLock; lockOptions: LockOptions; }): Promise; export declare function installPromptSubmissionLockRelease(params: { session: unknown; waitForSessionEvents: (session: unknown) => Promise; releaseForPrompt: () => Promise; }): void; export {};