/**
 * Vaultsfyi Action Provider
 *
 * This file contains the implementation of the VaultsfyiActionProvider,
 * which provides actions for vaultsfyi operations.
 *
 * @module vaultsfyi
 */
import { z } from "zod";
import { ActionProvider } from "../actionProvider";
import { Network } from "../../network";
import { EvmWalletProvider } from "../../wallet-providers";
import { claimActionSchema, depositActionSchema, redeemActionSchema, VaultDetailsActionSchema, VaultHistoricalDataActionSchema, VaultsActionSchema } from "./schemas";
/**
 * Configuration options for the OpenseaActionProvider.
 */
export interface VaultsfyiActionProviderConfig {
    /**
     * vaults.fyi API Key.
     */
    apiKey?: string;
}
/**
 * VaultsfyiActionProvider provides actions for vaultsfyi operations.
 *
 * @description
 * This provider is designed to work with EvmWalletProvider for blockchain interactions.
 * It supports all evm networks.
 */
export declare class VaultsfyiActionProvider extends ActionProvider<EvmWalletProvider> {
    private readonly apiKey;
    /**
     * Constructor for the VaultsfyiActionProvider.
     *
     * @param config - Configuration options for the provider
     */
    constructor(config?: VaultsfyiActionProviderConfig);
    /**
     * vaults action
     *
     * @param wallet - The wallet provider instance for blockchain interactions
     * @param args - Input arguments: token, network...
     * @returns A list of vaults.
     */
    vaults(wallet: EvmWalletProvider, args: z.infer<typeof VaultsActionSchema>): Promise<string>;
    /**
     * vault details action
     *
     * @param wallet - The wallet provider instance for blockchain interactions
     * @param args - Input arguments: address, network, apyRange
     * @returns A detailed view of a single vault.
     */
    vaultDetails(wallet: EvmWalletProvider, args: z.infer<typeof VaultDetailsActionSchema>): Promise<string>;
    /**
     * vault historical data action
     *
     * @param wallet - The wallet provider instance for blockchain interactions
     * @param args - Input arguments: address, network, date, apyRange
     * @returns A detailed view of a single vault.
     */
    vaultHistoricalData(wallet: EvmWalletProvider, args: z.infer<typeof VaultHistoricalDataActionSchema>): Promise<string>;
    /**
     * Deposit action
     *
     * @param wallet - The wallet provider instance for blockchain interactions
     * @param args - Input arguments
     * @returns A result message
     */
    deposit(wallet: EvmWalletProvider, args: z.infer<typeof depositActionSchema>): Promise<string>;
    /**
     * Redeem action
     *
     * @param wallet - The wallet provider instance for blockchain interactions
     * @param args - Input arguments
     * @returns A result message
     */
    redeem(wallet: EvmWalletProvider, args: z.infer<typeof redeemActionSchema>): Promise<string>;
    /**
     * Claim rewards action
     *
     * @param wallet - The wallet provider instance for blockchain interactions
     * @param args - Input arguments
     * @returns A result message
     */
    claim(wallet: EvmWalletProvider, args: z.infer<typeof claimActionSchema>): Promise<string>;
    /**
     * Returns the users wallet token balances.
     *
     * @param wallet - The wallet provider instance for blockchain interactions
     * @returns A record of the users balances
     */
    balances(wallet: EvmWalletProvider): Promise<string>;
    /**
     * Returns the users positions.
     *
     * @param wallet - The wallet provider instance for blockchain interactions
     * @returns A record of the users positions
     */
    positions(wallet: EvmWalletProvider): Promise<string>;
    /**
     * Checks if this provider supports the given network.
     *
     * @param network - The network to check support for
     * @returns True if the network is supported
     */
    supportsNetwork(network: Network): boolean;
}
/**
 * Factory function to create a new VaultsfyiActionProvider instance.
 *
 * @param config - Configuration options for the provider
 * @returns A new VaultsfyiActionProvider instance
 */
export declare const vaultsfyiActionProvider: (config: VaultsfyiActionProviderConfig) => VaultsfyiActionProvider;
