/**
 * エラーハンドリングユーティリティ
 * スタックトレースを保持しながらエラーを適切に処理するヘルパー関数
 */
import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
import { ZodError, type ZodSchema } from 'zod';
/**
 * エラーからメッセージを安全に抽出
 * @param error エラーオブジェクト
 * @returns エラーメッセージ
 */
export declare function getErrorMessage(error: unknown): string;
/**
 * エラーをデバッグモードでコンソールにログ出力（スタックトレース付き）
 * @param context エラーコンテキスト（ログメッセージプレフィックス）
 * @param error エラーオブジェクト
 */
export declare function logErrorWithStack(context: string, error: unknown): void;
/**
 * エラーを新しいエラーでラップし、元のエラーをcauseとして保持
 * Node.js 16.9+のError causeオプションを使用
 *
 * @param message 新しいエラーメッセージ
 * @param cause 元のエラー
 * @returns ラップされたエラー
 */
export declare function wrapError(message: string, cause: unknown): Error;
/**
 * エラーをMcpErrorでラップし、元のエラーをcauseとして保持
 *
 * @param code MCPエラーコード
 * @param message 新しいエラーメッセージ
 * @param cause 元のエラー（オプション）
 * @returns ラップされたMcpError
 */
export declare function wrapMcpError(code: ErrorCode, message: string, cause?: unknown): McpError;
/**
 * 非同期関数をtry-catchでラップし、エラーを適切にハンドリング
 *
 * @param fn 実行する非同期関数
 * @param context エラーコンテキスト
 * @param options オプション設定
 * @returns 関数の実行結果、またはエラーの場合はthrow
 */
export declare function handleAsync<T>(fn: () => Promise<T>, context: string, options?: {
    /** エラーをログ出力するか（デフォルト: true） */
    logError?: boolean;
    /** エラーをラップするか（デフォルト: false） */
    wrapError?: boolean;
}): Promise<T>;
/**
 * 完全なエラースタックトレースチェーンを取得（causeを含む）
 *
 * @param error エラーオブジェクト
 * @returns スタックトレースチェーン
 */
export declare function getFullErrorStack(error: unknown): string;
/**
 * エラーがENOENT（ファイル・ディレクトリが存在しない）エラーかチェック
 *
 * @param error エラーオブジェクト
 * @returns ENOENTエラーの場合true
 */
export declare function isENOENTError(error: unknown): boolean;
/**
 * Axiosエラーかチェックし、APIエラーメッセージを抽出
 *
 * @param error エラーオブジェクト
 * @returns APIエラーメッセージ、またはnull（Axiosエラーでない場合）
 */
export declare function extractAxiosErrorMessage(error: unknown): string | null;
/**
 * FTS5クエリ文字列をサニタイズ
 * SQLite FTS5の特殊文字を適切にエスケープし、構文エラーを防ぐ
 *
 * FTS5で特別な意味を持つ文字:
 * - " (phrase search)
 * - * (prefix search)
 * - - (NOT operator)
 * - ( ) (grouping)
 * - : (column filter)
 * - ^ (boost)
 *
 * @param query 検索クエリ文字列
 * @param options サニタイズオプション
 * @returns サニタイズされたクエリ文字列
 */
/**
 * Zodバリデーションエラーを人間が読みやすい形式に変換
 *
 * @param error ZodError オブジェクト
 * @returns フォーマットされたエラーメッセージ
 */
export declare function formatZodError(error: ZodError<any>): string;
/**
 * Zodスキーマで引数を検証し、検証エラーをMcpErrorに変換
 *
 * @param schema Zodスキーマ
 * @param args 検証する引数
 * @returns 検証済みの引数
 * @throws {McpError} 検証失敗時
 */
export declare function validateWithZod<T>(schema: ZodSchema<T>, args: unknown): T;
export declare function sanitizeFTS5Query(query: string, options?: {
    /** 空クエリの場合のフォールバック（デフォルト: '*'） */
    fallback?: string;
    /** フレーズ検索として扱うか（デフォルト: false） */
    phraseSearch?: boolean;
}): string;
/**
 * FTS5クエリの安全な実行をサポート
 * クエリをサニタイズし、エラーが発生した場合はフォールバック検索を試行
 *
 * @param query 元のクエリ文字列
 * @param executeQuery クエリ実行関数
 * @param options オプション設定
 * @returns クエリ実行結果
 */
export declare function safeFTS5Query<T>(query: string, executeQuery: (sanitizedQuery: string) => T | Promise<T>, options?: {
    /** 初回失敗時にフォールバック検索を試みるか（デフォルト: true） */
    useFallback?: boolean;
    /** フレーズ検索として扱うか（デフォルト: false） */
    phraseSearch?: boolean;
}): Promise<T>;
//# sourceMappingURL=error.d.ts.map