/** Reject symlink traversal only on paths that the synchronizer owns and writes. */ export declare function assertCharacterWritePath(root: string, target: string): Promise; /** Commit only a fully prepared library; restore the old root if activation fails. Caller owns the mutation lock. */ export declare function stageCharacterLibrary(root: string, signal: AbortSignal, prepare: (staged: string) => Promise<{ value: T; changed: boolean; }>): Promise;