import type { OrgDaemon } from '../daemon.js'; import type { RunningOrg } from '../daemon-types.js'; import type { DocumentsRuntime } from './runtime.js'; import type { StoreGuard } from './store-types.js'; export declare const DELIVERABLE_MISMATCH = "DELIVERABLE_MISMATCH"; export declare const DELIVERABLE_CHANGED = "DELIVERABLE_CHANGED"; export declare const DELIVERABLE_WORKSPACE_UNAVAILABLE = "DELIVERABLE_WORKSPACE_UNAVAILABLE"; /** What a refused accept tells whoever relays it to the producer. */ export interface DeliverableChange { type: string; doc: string; version: number; producer: string; decider: string; consumer: string; files: string[]; problems: string[]; } export interface DeliverableGuardOptions { /** The workspace directory of a producing role, or undefined when it cannot be resolved. */ workspaceOf(role: string): string | undefined; /** Called synchronously when an accept is refused for a changed file. Must not call back into the store. */ onChanged?(c: DeliverableChange): void; } export declare function deliverableGuard(o: DeliverableGuardOptions): StoreGuard; /** Where a role's own files are: the path its spawned session was given (a worktree), else its worktree under * worktree-per-role (the boss keeps the shared directory), else the run's directory. */ export declare function bindRoleWorkspaces(documents: Pick, daemon: OrgDaemon, name: string, running: RunningOrg, cwd: string): void; //# sourceMappingURL=deliverable-guards.d.ts.map