export declare enum BorosErrorCode { RATE_LIMITED = "RATE_LIMITED", API_UNAVAILABLE = "API_UNAVAILABLE", TIMEOUT = "TIMEOUT", AGENT_EXPIRED = "AGENT_EXPIRED", AGENT_NOT_SETUP = "AGENT_NOT_SETUP", AGENT_LOCKED = "AGENT_LOCKED", DISABLED_AGENT = "DISABLED_AGENT", MARKET_NOT_FOUND = "MARKET_NOT_FOUND", AMM_NOT_FOUND = "AMM_NOT_FOUND", INVALID_PARAMS = "INVALID_PARAMS", INSUFFICIENT_MARGIN = "INSUFFICIENT_MARGIN", INSUFFICIENT_GAS = "INSUFFICIENT_GAS", SLIPPAGE_EXCEEDED = "SLIPPAGE_EXCEEDED", MIN_ORDER_VALUE = "MIN_ORDER_VALUE", AMM_MIN_CASH = "AMM_MIN_CASH", MARKET_PAUSED = "MARKET_PAUSED", MARKET_HALTED = "MARKET_HALTED", SIMULATION_FAILED = "SIMULATION_FAILED", PRICE_IMPACT_TOO_HIGH = "PRICE_IMPACT_TOO_HIGH", EXECUTION_REVERTED = "EXECUTION_REVERTED", NO_FILL = "NO_FILL", BROWSER_DISMISSED = "BROWSER_DISMISSED", USER_CANCELLED = "USER_CANCELLED", WALLET_INCOMPATIBLE = "WALLET_INCOMPATIBLE", NOT_IMPLEMENTED = "NOT_IMPLEMENTED", UNKNOWN = "UNKNOWN" } /** Pre-filled follow-up call attached to a StructuredError (e.g. INSUFFICIENT_GAS → pay_gas). */ export interface NextToolHint { name: string; args: Record; why?: string; } export interface StructuredError { ok: false; error: { code: BorosErrorCode; message: string; retryable: boolean; action: string; nextTool?: NextToolHint; }; } /** Tag an error with a BorosErrorCode so classifyError routes it deterministically (no message regex). */ export declare function tagBorosError(err: E, code: BorosErrorCode): E; export declare function throwBorosError(code: BorosErrorCode, message: string): never; export declare function sanitizeErrorMessage(message: unknown): string; export declare function classifyError(err: unknown): BorosErrorCode; export declare function structuredError(code: BorosErrorCode, message?: string, opts?: { nextTool?: NextToolHint; }): StructuredError; export declare function errorContent(code: BorosErrorCode, message?: string, opts?: { nextTool?: NextToolHint; }): { content: { type: "text"; text: string; }[]; isError: boolean; }; /** Per-code follow-up hints; only the entry matching the resolved BorosErrorCode is attached. */ export declare function catchToErrorContent(err: unknown, opts?: { nextToolFor?: Partial>; }): { content: { type: "text"; text: string; }[]; isError: boolean; }; //# sourceMappingURL=errors.d.ts.map