import { AxiosError } from 'axios'; import { Hex } from 'viem'; import { QuoteBridgeDto, QuoteWithdrawDto } from '../../backend/secrettune/BorosCoreSDK'; import { PendleSwapDtoV2 } from '../../backend/secrettune/PendleV2SDK'; import { PendleSdkError, PendleSdkErrorParams } from '../../errors/PendleSdkError'; import { AggregatorName, QuoteDepositParams, QuoteWithdrawParams } from '../crossChainDeposit'; import { BungeeQuoteRequest, BungeeStatusRequest } from '../crossChainDeposit/aggregators/Bungee/types'; import { GetTokensRequest, LifiGetRouteStatusRequest, LifiGetRoutesRequest, LifiGetRoutesStep } from '../crossChainDeposit/aggregators/Lifi/types'; export type AggregatorRequestType = 'getTokens' | 'quote' | 'quoteWithdraw' | 'assemble' | 'getRouteStatus' | 'getIntentStatus' | 'prepareTransferCall'; export type AggregatorErrorCodeType = { [AggregatorName.LIFI]: number; [AggregatorName.PENDLE]: number; [AggregatorName.BOROS]: number; [AggregatorName.BUNGEE]: number; }; export type AggregatorRequestData = { [AggregatorName.LIFI]: { getTokens: GetTokensRequest; quote: LifiGetRoutesRequest; quoteWithdraw: QuoteWithdrawParams; assemble: LifiGetRoutesStep; getRouteStatus: LifiGetRouteStatusRequest; getIntentStatus: undefined; prepareTransferCall: undefined; }; [AggregatorName.PENDLE]: { getTokens: undefined; quote: PendleSwapDtoV2; quoteWithdraw: QuoteWithdrawParams; assemble: undefined; getRouteStatus: Hex; getIntentStatus: undefined; prepareTransferCall: undefined; }; [AggregatorName.BOROS]: { getTokens: undefined; quote: QuoteBridgeDto; quoteWithdraw: QuoteWithdrawDto; assemble: undefined; getRouteStatus: Hex; getIntentStatus: string; prepareTransferCall: QuoteDepositParams; }; [AggregatorName.BUNGEE]: { getTokens: undefined; quote: BungeeQuoteRequest; quoteWithdraw: BungeeQuoteRequest; assemble: undefined; getRouteStatus: BungeeStatusRequest; getIntentStatus: undefined; prepareTransferCall: undefined; }; }; export type ErrorDataCheckingFnReturnType = { errorCode?: AggregatorErrorCodeType[T]; message: string; extraData?: any; } | undefined; export declare class AggregatorHelperError extends PendleSdkError { readonly name: AggregatorName; readonly message: string; constructor(name: AggregatorName, message: string, params?: PendleSdkErrorParams); } export declare class AggregatorHelperRequestError extends AggregatorHelperError { readonly name: T; readonly requestType: RT; readonly requestErrorMessage: string; readonly requestData: AggregatorRequestData[T][RT]; readonly errorCode?: AggregatorErrorCodeType[T] | undefined; constructor(name: T, requestType: RT, requestErrorMessage: string, requestData: AggregatorRequestData[T][RT], errorCode?: AggregatorErrorCodeType[T] | undefined, params?: PendleSdkErrorParams); static isErrorOfType(error: unknown, name: T): error is AggregatorHelperRequestError; static isErrorOfType(error: unknown, name: T, requestType: RT): error is AggregatorHelperRequestError; } export declare class AggregatorHelperServerError extends AggregatorHelperError { readonly name: T; readonly status: number; readonly errorCode?: AggregatorErrorCodeType[T] | undefined; constructor(name: T, status: number, errorCode?: AggregatorErrorCodeType[T] | undefined, params?: PendleSdkErrorParams); static create(name: T, err: AxiosError, errorDataCheckingFn: (errorData: unknown) => ErrorDataCheckingFnReturnType): AggregatorHelperServerError | undefined; static isErrorOfType(error: unknown, name: T): error is AggregatorHelperServerError; } export declare class UnknownAggregatorHelperError extends AggregatorHelperError { constructor(name: AggregatorName, params?: PendleSdkErrorParams); } export declare class WrappedAxiosError extends PendleSdkError { readonly cause: AxiosError; constructor(message: string, cause: AxiosError); } export declare class AggregatorHelperAxiosError extends WrappedAxiosError { readonly name: AggregatorName; readonly cause: AxiosError; constructor(name: AggregatorName, cause: AxiosError); } export declare function classifyAggregatorError(name: T, error: any, errorStatuses: number[], requestType: RT, requestData: AggregatorRequestData[T][RT], errorDataCheckingFn: (errorData: unknown) => ErrorDataCheckingFnReturnType): AggregatorHelperRequestError | AggregatorHelperServerError | UnknownAggregatorHelperError | AggregatorHelperAxiosError;