export type OverlayAction = { id: string; label: string; meta?: Record; timeoutMs?: number } export type ActionAck = { id: string; status: 'confirmed' | 'tentative' | 'failed'; reason?: string } export interface IOverlaySyncPort { startAction(action: OverlayAction): Promise cancelAction(actionId: string): Promise }