import { type ExtensionAPI, type ExtensionCommandContext, type ExtensionContext, type ToolCallEvent, type ToolCallEventResult } from "@earendil-works/pi-coding-agent"; import { type HeartbeatResult, type PathRequest, type ReleaseResult } from "../application/collision-guard.js"; import type { Clock, PathCanonicalizer } from "../application/ports.js"; import type { AcquireResult, ClaimStatus } from "../domain/decision.js"; import { type ClaimOwner } from "../domain/owner.js"; import { type HeartbeatTimerScheduler } from "./heartbeat-timer.js"; export interface CollisionGuardOperations { acquire(request: { readonly path: string; readonly cwd: string; readonly owner: ClaimOwner; }): Promise; heartbeat(owner: ClaimOwner): Promise; releaseOwner(owner: ClaimOwner): Promise; forceRelease(request: PathRequest): Promise; list(): Promise; } export interface PiCollisionGuardOptions { readonly collisionGuard?: CollisionGuardOperations; readonly pathCanonicalizer?: PathCanonicalizer; readonly clock?: Clock; readonly stateRoot?: string; readonly ownerToken?: string; readonly pid?: number; readonly heartbeatIntervalMs?: number; readonly heartbeatScheduler?: HeartbeatTimerScheduler; } export declare class PiCollisionGuardAdapter { #private; constructor(options?: PiCollisionGuardOptions); onSessionStart(ctx: ExtensionContext): void; onToolCall(event: ToolCallEvent, ctx: ExtensionContext): Promise; onAgentSettled(ctx: ExtensionContext): Promise; onSessionShutdown(ctx: ExtensionContext): Promise; onCollisionCommand(args: string, ctx: ExtensionCommandContext): Promise; } export declare function registerPiCollisionGuard(pi: ExtensionAPI, options?: PiCollisionGuardOptions): PiCollisionGuardAdapter; //# sourceMappingURL=pi-extension.d.ts.map