import type { TerminalControlRef } from "./terminal-agent-adapter.js"; import type { TerminalDispatchLedgerDocument } from "./terminal-dispatch-ledger-codec.js"; export interface NativeThreadLifecycleLedgerRepository { load(terminalControl: TerminalControlRef): TerminalDispatchLedgerDocument | undefined; save(terminalControl: TerminalControlRef, ledger: TerminalDispatchLedgerDocument): void; } export interface NativeThreadLifecycleLedgerAuthority { ordinaryOwnerIsReleased(ledger: TerminalDispatchLedgerDocument): boolean; } export interface NativeThreadLifecycleLedgerExpectation { expectedTransitionId: string | null; expectedStatus?: string; } export interface NativeThreadLifecycleLedgerCliAdapter { save(terminalControl: TerminalControlRef, ledger: TerminalDispatchLedgerDocument, expectation: NativeThreadLifecycleLedgerExpectation): void; } /** * Own lifecycle-ledger CAS at the CLI persistence boundary. The application * supplies already-encoded documents; only this adapter may compare them with * the live terminal ledger and write the replacement bytes. */ export declare function createNativeThreadLifecycleLedgerCliAdapter(input: Readonly<{ repository: NativeThreadLifecycleLedgerRepository; authority: NativeThreadLifecycleLedgerAuthority; }>): NativeThreadLifecycleLedgerCliAdapter;