import { AirdropType, Token, TokenAmount } from '@envanik/sdk';
/**
 * This hook returns the airdrop contract of the specified type
 * @param address Address of contract
 * @param type Type of airdrop
 * @returns Airdrop contract instance
 */
export declare function useMerkledropContract(address: string, type: AirdropType): import("@ethersproject/contracts").Contract | null;
/**
 * This hook return the claimed amount of a connected account
 * @param airdropAddress Address of airdrop contract
 * @param token Airdropped token
 * @returns TokenAmount, amount claimed
 */
export declare function useMerkledropClaimedAmounts(airdropAddress: string, token: Token): import("react-query").UseQueryResult<TokenAmount, unknown>;
/**
 * This hook return the markledrop proofs and claim amount of a connected account
 * @param airdropAddress Address of airdrop contract
 * @param token Airdropped token
 * @returns The proof, the root and the claim amount
 */
export declare function useMerkledropProof(airdropAddress: string, token: Token): import("react-query").UseQueryResult<{
    amount: TokenAmount;
    proof: string[];
    root: string;
}, unknown>;
interface ClaimAirdropReturn {
    /** Function to handle the claim process */
    onClaim: () => Promise<void>;
    /** Function to handle cancellation */
    onDimiss: () => void;
    /** Claim transaction hash */
    hash: string | null;
    /** If the transaction is executing */
    attempting: boolean;
    /** The error message  */
    error: string | null;
}
/**
 * This hook returns functions to help to make the claim process
 * @param airdropAddress Address of airdrop contract
 * @param airdropType Type of airdrop contract
 * @param token Airdropped token
 * @returns Functions to make the claim process
 */
export declare function useClaimAirdrop(airdropAddress: string, airdropType: AirdropType, token: Token): ClaimAirdropReturn;
export {};
