import { z } from "zod";
import { ActionProvider } from "../actionProvider";
import { EvmWalletProvider } from "../../wallet-providers";
import { Network } from "../../network";
import { CompoundSupplySchema, CompoundWithdrawSchema, CompoundBorrowSchema, CompoundRepaySchema, CompoundPortfolioSchema } from "./schemas";
/**
 * CompoundActionProvider is an action provider for Compound protocol interactions.
 */
export declare class CompoundActionProvider extends ActionProvider<EvmWalletProvider> {
    /**
     * Constructs a new CompoundActionProvider instance.
     */
    constructor();
    /**
     * Supplies collateral assets to Compound.
     *
     * @param wallet - The wallet instance to perform the transaction.
     * @param args - The input arguments including assetId and amount.
     * @returns A message indicating success or an error message.
     */
    supply(wallet: EvmWalletProvider, args: z.infer<typeof CompoundSupplySchema>): Promise<string>;
    /**
     * Withdraws collateral assets from Compound.
     *
     * @param wallet - The wallet instance to perform the transaction.
     * @param args - The input arguments including assetId and amount.
     * @returns A message indicating success or an error message.
     */
    withdraw(wallet: EvmWalletProvider, args: z.infer<typeof CompoundWithdrawSchema>): Promise<string>;
    /**
     * Borrows base assets from Compound.
     *
     * @param wallet - The wallet instance to perform the transaction.
     * @param args - The input arguments including assetId and amount.
     * @returns A message indicating success or an error message.
     */
    borrow(wallet: EvmWalletProvider, args: z.infer<typeof CompoundBorrowSchema>): Promise<string>;
    /**
     * Repays borrowed assets to Compound.
     *
     * @param wallet - The wallet instance to perform the transaction.
     * @param args - The input arguments including assetId and amount.
     * @returns A message indicating success or an error message.
     */
    repay(wallet: EvmWalletProvider, args: z.infer<typeof CompoundRepaySchema>): Promise<string>;
    /**
     * Retrieves portfolio details from Compound.
     *
     * @param wallet - The wallet instance to fetch portfolio details.
     * @param _ - No input is required for this action.
     * @returns A Markdown formatted string with portfolio details or an error message.
     */
    getPortfolio(wallet: EvmWalletProvider, _: z.infer<typeof CompoundPortfolioSchema>): Promise<string>;
    /**
     * Checks if the Compound action provider supports the given network.
     *
     * @param network - The network to check.
     * @returns True if the network is supported, false otherwise.
     */
    supportsNetwork: (network: Network) => boolean;
}
/**
 * Factory function to create a new instance of CompoundActionProvider.
 *
 * @returns A new CompoundActionProvider instance.
 */
export declare const compoundActionProvider: () => CompoundActionProvider;
