import { AxiosError } from 'axios';
/**
 * Polynance SDKで発生する可能性のあるエラーコードを定義します。
 * AIがエラーの種類を特定しやすくするために使用されます。
 */
export declare enum PolynanceErrorCode {
    NETWORK_ERROR = "ERR_NETWORK",// DNS解決失敗、TCP接続拒否などの一般的なネットワーク問題
    TIMEOUT_ERROR = "ERR_TIMEOUT",// APIリクエストのタイムアウト
    API_REQUEST_FAILED = "ERR_API_REQUEST",// APIリクエスト失敗（HTTPステータスコードが2xx以外）
    SSE_CONNECTION_FAILED = "ERR_SSE_CONNECT",// SSE接続の確立失敗
    SSE_MESSAGE_ERROR = "ERR_SSE_MESSAGE",// SSEメッセージの受信または解析中のエラー
    SSE_CLOSED = "ERR_SSE_CLOSED",// SSE接続が予期せずクローズされた
    INVALID_PARAMETER = "ERR_INVALID_PARAM",// 必須パラメータの欠落や不正な値
    VALIDATION_ERROR = "ERR_VALIDATION",// レスポンスデータの形式不正など
    SERVER_ERROR = "ERR_SERVER",// 5xx系のサーバーエラー
    NOT_FOUND = "ERR_NOT_FOUND",// 404 Not Found
    UNAUTHORIZED = "ERR_UNAUTHORIZED",// 401 Unauthorized
    FORBIDDEN = "ERR_FORBIDDEN",// 403 Forbidden
    RATE_LIMIT_EXCEEDED = "ERR_RATE_LIMIT",// 429 Rate limit exceeded
    INTERNAL_SDK_ERROR = "ERR_SDK_INTERNAL",// SDK内部の予期せぬロジックエラー
    ENVIRONMENT_ERROR = "ERR_ENVIRONMENT"
}
/**
 * PolynanceClientから発生するAPI関連エラーのためのカスタムエラークラス。
 * デバッグやAIとの連携を容易にするための構造化されたコンテキストを提供します。
 */
export declare class PolynanceApiError extends Error {
    /** エラーの種類を識別するSDK固有のコード。 */
    readonly code: PolynanceErrorCode;
    /** 可能であれば、元のエラーオブジェクト（例: AxiosError）。 */
    readonly originalError?: Error | AxiosError;
    /** APIレスポンスの結果である場合、HTTPステータスコード。 */
    readonly statusCode?: number;
    /** エラーが発生したSDKメソッドの名前。 */
    readonly methodName?: string;
    /** エラーレスポンスボディのデータ（もしあれば）。 */
    readonly responseData?: any;
    /** エラー発生時のコンテキスト情報（例: パラメータ、URL）。機密情報は含めないこと。 */
    readonly context?: Record<string, any>;
    /** このエラーインスタンス固有のID（ログ追跡用）。 */
    readonly errorId: string;
    constructor(message: string, code: PolynanceErrorCode, options?: {
        cause?: Error | AxiosError;
        methodName?: string;
        statusCode?: number;
        responseData?: any;
        context?: Record<string, any>;
    });
    /**
     * ログ出力やAIへのコンテキスト共有に適した、人間が読みやすい文字列を生成します。
     * コピー＆ペーストでの利用を想定しています。
     */
    toString(): string;
    /**
     * より簡潔なエラー概要を提供します。ログのサマリーなどに利用できます。
     */
    get summary(): string;
}
