import type { DaemonErrorCategory, DaemonErrorSource, StructuredDaemonErrorBody } from './daemon-error-contract.js';
export type { DaemonErrorCategory, DaemonErrorSource, StructuredDaemonErrorBody, } from './daemon-error-contract.js';
export type ErrorCategory = DaemonErrorCategory | 'contract';
export type ErrorSource = DaemonErrorSource | 'contract';
export interface GoodVibesSdkErrorOptions {
    readonly code?: string;
    readonly category?: ErrorCategory;
    readonly source?: ErrorSource;
    readonly recoverable?: boolean;
    readonly status?: number;
    readonly url?: string;
    readonly method?: string;
    readonly body?: unknown;
    readonly hint?: string;
    readonly provider?: string;
    readonly operation?: string;
    readonly phase?: string;
    readonly requestId?: string;
    readonly providerCode?: string;
    readonly providerType?: string;
    readonly retryAfterMs?: number;
}
export declare const RETRYABLE_STATUS_CODES: readonly number[];
export declare class GoodVibesSdkError extends Error {
    readonly code?: string;
    readonly category: ErrorCategory;
    readonly source: ErrorSource;
    readonly recoverable: boolean;
    readonly status?: number;
    readonly url?: string;
    readonly method?: string;
    readonly body?: unknown;
    readonly hint?: string;
    readonly provider?: string;
    readonly operation?: string;
    readonly phase?: string;
    readonly requestId?: string;
    readonly providerCode?: string;
    readonly providerType?: string;
    readonly retryAfterMs?: number;
    constructor(message: string, options?: GoodVibesSdkErrorOptions);
}
export declare class ConfigurationError extends GoodVibesSdkError {
    constructor(message: string, options?: GoodVibesSdkErrorOptions);
}
export declare class ContractError extends GoodVibesSdkError {
    constructor(message: string, options?: GoodVibesSdkErrorOptions);
}
export declare class HttpStatusError extends GoodVibesSdkError {
    constructor(message: string, options?: GoodVibesSdkErrorOptions);
}
export declare function isStructuredDaemonErrorBody(value: unknown): value is StructuredDaemonErrorBody;
export declare function createHttpStatusError(status: number, url: string, method: string, body: unknown): HttpStatusError;
//# sourceMappingURL=index.d.ts.map