/**
 * 사용자 취소와 세션 종료를 구분하는 전용 에러를 정의하는 파일이다.
 * ESC 취소와 Ctrl+C 종료를 일반 오류와 구분해 상위 흐름이 다르게 처리할 수 있게 한다.
 */
declare const USER_CANCELLED_ERROR_CODE = "JUHONG_E_USER_CANCELLED";
declare const USER_TERMINATED_ERROR_CODE = "JUHONG_E_USER_TERMINATED";
/**
 * Coded Cancellation Error 관련 타입이다.
 * hover 정보만으로도 용도와 필드 의미를 파악할 수 있도록 이 선언을 유지한다.
 */
type CodedCancellationError<TCode extends string> = Error & {
    /**
     * code 값
     */
    code: TCode;
};
/**
 * User Cancelled Error 관련 타입이다.
 * hover 정보만으로도 용도와 필드 의미를 파악할 수 있도록 이 선언을 유지한다.
 */
type UserCancelledError = CodedCancellationError<typeof USER_CANCELLED_ERROR_CODE>;
/**
 * User Terminated Error 관련 타입이다.
 * hover 정보만으로도 용도와 필드 의미를 파악할 수 있도록 이 선언을 유지한다.
 */
type UserTerminatedError = CodedCancellationError<typeof USER_TERMINATED_ERROR_CODE>;
/**
 * 사용자가 ESC로 현재 작업만 중단한 경우를 일반 오류와 구분하기 위한 전용 에러를 만든다.
 */
export declare function createUserCancelledError(message?: string): CodedCancellationError<"JUHONG_E_USER_CANCELLED">;
/**
 * @description
 * `isUserCancelledError` 는 user Cancelled Error 여부를 판별한다.
 * 여러 명령에서 반복되는 기반 로직을 공통 헬퍼로 재사용하기 위해 호출한다.
 *
 * @param error 실행 중 발생한 예외
 * @returns isUserCancelledError 처리 결과
 */
export declare function isUserCancelledError(error: unknown): error is UserCancelledError;
/**
 * 사용자가 Ctrl+C 로 세션 종료를 요청한 경우를 일반 오류와 구분하기 위한 전용 에러를 만든다.
 */
export declare function createUserTerminatedError(message?: string): CodedCancellationError<"JUHONG_E_USER_TERMINATED">;
/**
 * @description
 * `isUserTerminatedError` 는 user Terminated Error 여부를 판별한다.
 * 여러 명령에서 반복되는 기반 로직을 공통 헬퍼로 재사용하기 위해 호출한다.
 *
 * @param error 실행 중 발생한 예외
 * @returns isUserTerminatedError 처리 결과
 */
export declare function isUserTerminatedError(error: unknown): error is UserTerminatedError;
export {};
//# sourceMappingURL=cancellation.d.ts.map