import { BalancesData, BalancesResponse, CheckoutDto, CheckoutOnrampParams, CheckoutRouteDto, DepositCalldataResponse, DepositDto, DepositOnRampParams, DepositRouteDto, ExecuteMigrationForwardDto, ExecuteMigrationGaslessDto, ExecuteMigrationNonGaslessDto, IsTokenSupportedResponse, MoonpayOnRampParams, PriceData, RelayedTxListResponse, SupportedChainInfo, SupportedTokensResponse, TrxStatusResponse, KadoOnRampParams, DepositAddressData, StatusResponseDto, DepositAddressDTO } from "./utils/CoreTypes";
export declare class AarcCore {
    apiKey: string;
    constructor(apiKey: string, isDebug?: boolean);
    executeMigrationGasless(executeMigrationGaslessDto: ExecuteMigrationGaslessDto): Promise<RelayedTxListResponse[]>;
    /**
     * @description this function will return balances of ERC-20, ERC-721 and native tokens
     * @param balancesDto
     * @returns
     */
    fetchBalances(eoaAddress: string, chainId: number, fetchBalancesOnly?: boolean, tokenAddresses?: string[]): Promise<BalancesResponse>;
    /**
     *  @description this function will return balances of ERC-20, ERC-721 and native tokens
     * if given destinationToken then it will return amount required to convert to that token
     * @param eoaAddress wallet address
     * @param destinationToken token details to get balances
     * @returns
     */
    fetchMultiChainBalances(eoaAddress: string, destinationToken?: {
        tokenAddress: string;
        tokenChainId: number;
        tokenAmount: string;
    }): Promise<BalancesData>;
    fetchTokenPrice(tokenSymbol: string, tokenAddress?: string, tokenChainId?: string): Promise<PriceData>;
    isTokenSupported(chainId: number, tokenAddress: string): Promise<IsTokenSupportedResponse>;
    getSupportedTokens(chainId: number): Promise<SupportedTokensResponse>;
    getSupportedChains(): Promise<SupportedChainInfo>;
    executeMigration(executeMigrationNonGaslessDto: ExecuteMigrationNonGaslessDto): Promise<RelayedTxListResponse[]>;
    performDeposit(depositDto: DepositDto): Promise<RelayedTxListResponse[]>;
    performCheckout(depositDto: CheckoutDto): Promise<RelayedTxListResponse[]>;
    getDepositRoute(depositRouteDto: DepositRouteDto): Promise<DepositCalldataResponse>;
    getCheckoutRoute(checkoutRouteDto: CheckoutRouteDto): Promise<import("./utils").CheckoutCalldataResponse>;
    executeMigrationForward(executeMigrationForwardDto: ExecuteMigrationForwardDto): Promise<RelayedTxListResponse[]>;
    getTransactionStatus(taskId: string): Promise<TrxStatusResponse>;
    generateDepositOnrampUrl(onrampData: DepositOnRampParams): Promise<string | Error>;
    generateCheckoutOnrampUrl(onrampData: CheckoutOnrampParams): Promise<string | Error>;
    generateMoonpayOnrampUrl(onrampData: MoonpayOnRampParams): Promise<string | Error>;
    generateKadoOnrampUrl(onrampData: KadoOnRampParams): Promise<string | Error>;
    getDepositAddress({ toAmount, provider, gasLimit, slippage, routeType, fromAmount, userOpHash, fromChainId, fromAddress, transferOut, transferType, targetCalldata, userOperations, fromTokenAddress, destinationChainId, destinationRecipient, destinationTokenAddress, refundAddress, }: DepositAddressDTO): Promise<DepositAddressData>;
    postExecuteToAddress({ depositData, trxHash, }: {
        depositData: DepositAddressData;
        trxHash: string;
    }): Promise<Response>;
    getRequestStatus: (requestId: string) => Promise<StatusResponseDto>;
}
export default AarcCore;
