export type KyroErrorCode = 'SCOPE_NOT_FOUND' | 'INVALID_JSON' | 'INVALID_SPRINT_SHAPE' | 'INVALID_PROJECT_STATE' | 'SNAPSHOT_EXISTS' | 'CHECKPOINT_CORRUPT' | 'CHECKPOINT_UNSUPPORTED_VERSION' | 'CHECKPOINT_CONFLICT' | 'STATE_DIVERGED' | 'DIVERGED' | 'CONFIRMATION_REQUIRED' | 'HUMAN_APPROVAL_REQUIRED' | 'POLICY_BLOCKED' | 'CHECKER_FAILED' | 'SELF_REVIEW_BLOCKED' | 'CLARIFICATION_REQUIRED' | 'BLOCKING_FINDINGS' | 'INVALID_INPUT' | 'UNKNOWN_COMMAND' | 'UNKNOWN_SUBCOMMAND' | 'UNKNOWN_TOOL' | 'NO_ACTIVE_SPRINT' | 'TASK_NOT_FOUND' | 'DEBT_NOT_FOUND' | 'SCOPE_ALREADY_INITIALIZED' | 'SCOPE_RETIRED' | 'SPRINT_ALREADY_ACTIVE' | 'NOT_READY_TO_PLAN' | 'NOT_READY_TO_CLARIFY' | 'CLARIFICATION_NOT_FOUND' | 'WRITE_NOT_PERMITTED' /** Completion refused because the scope still has active work, open debt, review debt, or a live sprint. */ | 'NOT_READY_TO_COMPLETE' /** Completion refused because the scope already carries completion or retirement metadata. */ | 'COMPLETION_CONFLICT' /** Reopen refused because the scope is not completed — there is no completion to supersede. */ | 'SCOPE_ALREADY_OPEN' /** Reopen refused because the live records disagree about which completion is being reopened. */ | 'REOPEN_CONFLICT' /** The reviewed task/evidence or requested verdict changed after a digest-bound preview. */ | 'REVIEW_REQUEST_DIVERGED' /** A task with a disposition is terminal for execution; no checker review path may reopen it. */ | 'DISPOSED_TASK_NOT_REVIEWABLE' /** A temporary blocked task must resume through fresh evidence, not a checker verdict. */ | 'BLOCKED_TASK_NOT_REVIEWABLE' /** New terminal blocked dispositions are forbidden; legacy records remain readable. */ | 'BLOCKED_DISPOSITION_DEPRECATED' /** Close refused because an unfinished task has no typed disposition. */ | 'UNDISPOSED_TASKS' /** A defined, parseable operation this runtime can prepare or preview but deliberately not apply. */ | 'UNSUPPORTED_OPERATION' | 'INTERNAL'; export declare class KyroCoreError extends Error { readonly code: KyroErrorCode; readonly remedy?: string | undefined; constructor(code: KyroErrorCode, message: string, remedy?: string | undefined); } export declare function toErrorEnvelope(error: unknown): { code: KyroErrorCode; message: string; remedy?: string; }; /** * Recognize durable-write failures caused by the environment (read-only filesystem, permission * denied, disk full) and translate them into an actionable KyroCoreError. Returns null for any * other error so callers can fall back to their existing generic handling. */ export declare function describeWriteFailure(error: unknown): KyroCoreError | null; //# sourceMappingURL=errors.d.ts.map