/**
 * local-server 공유 파일을 안전하게 갱신하기 위한 파일 락 유틸리티다.
 * Node 단일 프로세스 내부뿐 아니라 여러 CLI 탭이 동시에 접근하는 경우까지 최소한으로 보호한다.
 */
import type { StoragePaths, TraceLogger } from '../../../../platform/core/types';
type FileLockOptions = {
    lockPath: string;
    owner: string;
    staleMs?: number;
    timeoutMs?: number;
    trace: TraceLogger;
};
/**
 * @description 락을 획득한 뒤 작업을 실행하고 반드시 락 파일을 해제한다.
 * @param options 락 옵션
 * @param task 락 안에서 실행할 작업
 * @returns task 반환값
 */
export declare function withFileLock<T>(options: FileLockOptions, task: () => Promise<T> | T): Promise<T>;
/**
 * @description server lifecycle 전용 락을 잡고 작업을 실행한다.
 * @param paths 저장소 경로 정보
 * @param trace trace 로거
 * @param owner 락 소유자 라벨
 * @param task 실행할 작업
 * @returns task 반환값
 */
export declare function withLocalServerLock<T>(paths: StoragePaths, trace: TraceLogger, owner: string, task: () => Promise<T> | T): Promise<T>;
/**
 * @description preview refresh 전용 락을 잡고 작업을 실행한다.
 * @param paths 저장소 경로 정보
 * @param trace trace 로거
 * @param owner 락 소유자 라벨
 * @param task 실행할 작업
 * @returns task 반환값
 */
export declare function withLocalServerRefreshLock<T>(paths: StoragePaths, trace: TraceLogger, owner: string, task: () => Promise<T> | T): Promise<T>;
export {};
//# sourceMappingURL=lock.d.ts.map