import type { Address, Hex } from "viem"; export declare enum SwapperMode { EXACT_IN = 0, EXACT_OUT = 1, TARGET_DEBT = 2 } export declare enum SwapVerificationType { SkimMin = "skimMin", DebtMax = "debtMax", TransferMin = "transferMin" } export interface SwapQuoteRequest { chainId: number; tokenIn: Address; tokenOut: Address; accountIn: Address; accountOut: Address; amount: bigint; vaultIn: Address; receiver: Address; origin: Address; slippage: number; swapperMode: SwapperMode; isRepay: boolean; targetDebt: bigint; currentDebt: bigint; deadline: number; dustAccount?: Address; unusedInputReceiver?: Address; transferOutputToReceiver?: boolean; skipSweepDepositOut?: boolean; provider?: string; providerExtraData?: SwapProviderExtraData; } export type SwapProviderExtraDataType = "openPosition" | "closePosition" | "collateralSwap"; export interface SwapProviderExtraData { type: SwapProviderExtraDataType; swapCollateralSharesAmountIn?: bigint; appData?: string; } export interface SwapProviderData { quoteId?: number | string; sellAmount?: string; buyAmount?: string; feeAmount?: string; } export interface SwapQuote { amountIn: string; amountInMax: string; amountOut: string; amountOutMin: string; accountIn: Address; accountOut: Address; vaultIn: Address; receiver: Address; tokenIn: { address: Address; chainId: number; decimals: number; logoURI: string; name: string; symbol: string; meta?: unknown; }; tokenOut: { address: Address; chainId: number; decimals: number; logoURI: string; name: string; symbol: string; meta?: unknown; }; slippage: number; swap: SwapperData; verify: SwapVerifierData; route: SwapRouteHop[]; providerData?: SwapProviderData; transferOutputToReceiver?: boolean; } export interface GetRepayQuoteArgs { chainId: number; fromVault: Address; fromAsset: Address; fromAccount: Address; liabilityVault: Address; liabilityAsset: Address; currentDebt: bigint; toAccount: Address; origin: Address; swapperMode: SwapperMode; slippage: number; liabilityAmount?: bigint; collateralAmount?: bigint; deadline?: number; unusedInputReceiver?: Address; provider?: string; providerExtraData?: SwapProviderExtraData; cowSwap?: { type: "closePosition"; owner: Address; collateralSharesAmount: bigint; }; } export interface GetDepositQuoteArgs { chainId: number; fromVault: Address; toVault: Address; fromAccount: Address; toAccount: Address; fromAsset: Address; toAsset: Address; amount: bigint; origin: Address; slippage: number; deadline?: number; unusedInputReceiver?: Address; skipSweepDepositOut?: boolean; provider?: string; providerExtraData?: SwapProviderExtraData; cowSwap?: { type: "openPosition"; owner: Address; collateralVault: Address; collateralAmount: bigint; } | { type: "collateralSwap"; owner: Address; sharesAmount: bigint; disableSourceCollateral?: boolean; }; } export interface GetWalletSwapQuoteArgs { chainId: number; fromAsset: Address; toAsset: Address; amount: bigint; receiver: Address; origin: Address; slippage: number; deadline?: number; provider?: string; providerExtraData?: SwapProviderExtraData; } export interface SwapperData { swapperAddress: Address; swapperData: Hex; multicallItems: MulticallItem[]; } export interface MulticallItem { functionName: string; args: unknown[]; data: Hex; } export interface SwapRouteHop { providerName: string; } export interface SwapVerifierData { verifierAddress: Address; verifierData: Hex; type: SwapVerificationType; vault: Address; account: Address; amount: string; deadline: number; } export interface SwapsApiResponse { success: boolean; data: SwapQuote[]; } export interface SwapProvidersApiResponse { success: boolean; data: string[]; } //# sourceMappingURL=swapServiceTypes.d.ts.map