import { RequiredConfig } from "./config"; import { Result, ValidationErrorInfo } from "./types/common"; export type ResponseHandler = (response: Response) => Promise; export type ResponseHandlerCreator = (config: RequiredConfig) => ResponseHandler; type ApiErrorArgs = { message: string; status: number; body?: any; requestId?: string; /** * The type of timeout that occurred. If "user", this was a user-specified * timeout via startTimeout and should NOT be retried. */ timeoutType?: string; }; export declare class ApiError extends Error { readonly status: number; readonly body: Body; readonly requestId: string; readonly timeoutType?: string; constructor({ message, status, body, requestId, timeoutType }: ApiErrorArgs); /** * Returns true if this error was caused by a user-specified timeout * (via startTimeout parameter). These errors should NOT be retried. */ get isUserTimeout(): boolean; } type ValidationErrorBody = { detail: ValidationErrorInfo[]; }; export declare class ValidationError extends ApiError { constructor(args: ApiErrorArgs); get fieldErrors(): ValidationErrorInfo[]; getFieldErrors(field: string): ValidationErrorInfo[]; } export declare function defaultResponseHandler(response: Response): Promise; export declare function resultResponseHandler(response: Response): Promise>; export {};