import { AavePoolInputBody, AavePoolAPIResponseAavePoolExecuteFunctionResult, AAVEv3RewardsInputBody, AAVEv3RewardsAPIResponseAAVEv3RewardsExecuteFunctionResult, GetRewardsByAssetParams, AAVEv3RewardsAPIResponseStringArray, GetRewardsDataParams, GetUserRewardsParams, AAVEv3RewardsAPIResponseString, GetAllATokensParams, PoolAddressProviderRegistryAPIResponseAnyArray } from '@moonup/moon-api';

type NetworkConfigType = {
    [key: string]: {
        pool: string;
        poolAddressesProvider: string;
        poolAddressesProviderRegistry: string;
    };
};
declare const useMoonAaveV3: () => {
    supply: (payload: {
        accountName: string;
        data: AavePoolInputBody;
    }) => Promise<AavePoolAPIResponseAavePoolExecuteFunctionResult>;
    withdraw: (payload: {
        accountName: string;
        data: AavePoolInputBody;
    }) => Promise<AavePoolAPIResponseAavePoolExecuteFunctionResult>;
    borrow: (payload: {
        accountName: string;
        data: AavePoolInputBody;
    }) => Promise<AavePoolAPIResponseAavePoolExecuteFunctionResult>;
    repay: (payload: {
        accountName: string;
        data: AavePoolInputBody;
    }) => Promise<AavePoolAPIResponseAavePoolExecuteFunctionResult>;
    claimAllRewards: (payload: {
        accountName: string;
        data: AAVEv3RewardsInputBody;
    }) => Promise<AAVEv3RewardsAPIResponseAAVEv3RewardsExecuteFunctionResult>;
    claimRewardsOnBehalf: (payload: {
        accountName: string;
        data: AAVEv3RewardsInputBody;
    }) => Promise<AAVEv3RewardsAPIResponseAAVEv3RewardsExecuteFunctionResult>;
    claimRewardsToSelf: (payload: {
        accountName: string;
        data: AAVEv3RewardsInputBody;
    }) => Promise<AAVEv3RewardsAPIResponseAAVEv3RewardsExecuteFunctionResult>;
    getRewardsByAsset: (payload: GetRewardsByAssetParams) => Promise<AAVEv3RewardsAPIResponseStringArray>;
    getRewardsData: (payload: GetRewardsDataParams) => Promise<AAVEv3RewardsAPIResponseStringArray>;
    getUserRewards: (payload: GetUserRewardsParams) => Promise<AAVEv3RewardsAPIResponseString>;
    getAaveV3PoolAddress: (accountName: string, chainId: string) => Promise<string | undefined>;
    getAllATokens: (payload: GetAllATokensParams) => Promise<PoolAddressProviderRegistryAPIResponseAnyArray>;
    networkConfig: NetworkConfigType;
};

export { useMoonAaveV3 };
