/**
 * Continuation Lock - Ensures single execution of continuation logic
 *
 * Prevents simultaneous execution of Mission Loop and Todo Continuation systems.
 * This resolves infinite loading issues caused by duplicate prompt injections.
 *
 * @example
 * if (!tryAcquireContinuationLock(sessionID)) {
 *     return; // Another system is already processing
 * }
 * try {
 *     // continuation logic
 * } finally {
 *     releaseContinuationLock(sessionID);
 * }
 */
interface ContinuationLockState {
    acquired: boolean;
    timestamp: number;
    source?: string;
}
/**
 * Try to acquire the continuation lock
 *
 * @param sessionID - Session ID
 * @param source - Source requesting the lock (for debugging)
 * @returns true if acquired, false otherwise
 */
export declare function tryAcquireContinuationLock(sessionID: string, source?: string): boolean;
/**
 * Release the continuation lock
 *
 * @param sessionID - Session ID
 */
export declare function releaseContinuationLock(sessionID: string): void;
/**
 * Check if the lock is currently active
 *
 * @param sessionID - Session ID
 * @returns true if lock is held
 */
export declare function hasContinuationLock(sessionID: string): boolean;
/**
 * Cleanup lock when session is cleaned up
 *
 * @param sessionID - Session ID
 */
export declare function cleanupContinuationLock(sessionID: string): void;
/**
 * Clear all locks (for testing)
 */
export declare function clearAllLocks(): void;
/**
 * Get lock status (for debugging)
 */
export declare function getLockStatus(sessionID: string): ContinuationLockState | undefined;
export {};
