/**
 * Structured errors raised by the Issues subsystem.
 *
 * Carrying typed errors (rather than `new Error("…")`) lets the HTTP layer
 * convert them into rich `ErrorEnvelope` payloads with stable `error_code`s
 * and structured hints, so MCP clients and CLI users see the same recovery
 * guidance without parsing free-form messages.
 */
export interface IssueValidationDetails {
    /** Stable error code for callers. */
    code: string;
    /** Free-form human-readable message (also used as Error.message). */
    message: string;
    /** Names of fields the caller should populate to retry. */
    required_fields?: string[];
    /** Acceptable alternatives the caller can supply ("at least one of"). */
    acceptable_field_groups?: string[][];
    /** A short remediation tip rendered in `details.hint`. */
    hint?: string;
    /** Free-form additional metadata (kept under `details.extra`). */
    extra?: Record<string, unknown>;
}
export interface IssueTransportDetails {
    /** Stable error code for callers. */
    code: string;
    /** Free-form human-readable message (also used as Error.message). */
    message: string;
    /** Suggested HTTP status when surfaced through the API. */
    status?: number;
    /** A short remediation tip rendered in `details.hint`. */
    hint?: string;
    /** Free-form additional metadata (kept under `details.extra`). */
    extra?: Record<string, unknown>;
}
export declare class IssueValidationError extends Error {
    readonly code: string;
    readonly required_fields?: string[];
    readonly acceptable_field_groups?: string[][];
    readonly hint?: string;
    readonly extra?: Record<string, unknown>;
    constructor(details: IssueValidationDetails);
    toErrorEnvelopeDetails(): Record<string, unknown>;
}
export declare class IssueTransportError extends Error {
    readonly code: string;
    readonly status: number;
    readonly hint?: string;
    readonly extra?: Record<string, unknown>;
    constructor(details: IssueTransportDetails);
    toErrorEnvelopeDetails(): Record<string, unknown>;
}
/**
 * Type guard for the HTTP error catch path.
 */
export declare function isIssueValidationError(value: unknown): value is IssueValidationError;
export declare function isIssueTransportError(value: unknown): value is IssueTransportError;
//# sourceMappingURL=errors.d.ts.map