import type { LockedResource, OrchestrationState, OrchestrateResult, ToolResult } from '../types/index.js';
export declare const DEFAULT_LOCK_TTL_MS: number;
export declare function isLockExpired(lock: LockedResource): boolean;
export declare function pruneExpiredLocks(state: OrchestrationState): OrchestrationState;
export declare function handleHeartbeatState(state: OrchestrationState, sessionId: string, lockTtlMinutes?: number): {
    state: OrchestrationState;
    result: OrchestrateResult;
} | {
    error: string;
};
export declare function handleLockState(state: OrchestrationState, sessionId: string, resourcePath?: string, specId?: string, lockTtlMinutes?: number, fileOwnership?: string[]): {
    state: OrchestrationState;
    result: OrchestrateResult;
} | {
    error: string;
};
export declare function handleUnlockState(state: OrchestrationState, sessionId: string, resourcePath?: string, specId?: string): {
    state: OrchestrationState;
    result: OrchestrateResult;
} | {
    error: string;
};
export declare function toHeartbeatResult(sessionId: string | undefined, state: OrchestrationState, lockTtlMinutes?: number): {
    mutated: OrchestrationState | null;
    toolResult: ToolResult;
};
export declare function toLockResult(sessionId: string | undefined, state: OrchestrationState, resourcePath?: string, specId?: string, lockTtlMinutes?: number, fileOwnership?: string[]): {
    mutated: OrchestrationState | null;
    toolResult: ToolResult;
};
export declare function toUnlockResult(sessionId: string | undefined, state: OrchestrationState, resourcePath?: string, specId?: string): {
    mutated: OrchestrationState | null;
    toolResult: ToolResult;
};
//# sourceMappingURL=orchestrate-locking.d.ts.map