export type SyncPhase = 'SPAWN_ATTEMPT' | 'START' | 'SKIP_INPROGRESS' | 'FINISH' | 'ERROR'; export declare class SyncLogEvent { phase: SyncPhase; pid: number; branchArg: string; detail: string; constructor(phase: SyncPhase, pid: number, branchArg: string, detail: string); } /** * Append one tab-separated line per refresher event to * `.webpieces/logs/async-refresh/.log` (see LogStream for the writer key). `root` is * the workspace root holding `.webpieces`. Swallows all errors — logging must never block or fail * the refresher (or the hook that spawns it). */ export declare function logSyncEvent(root: string, event: SyncLogEvent): void; export declare function refresherChildStdioPath(root: string): string;