import { ethers } from "ethers";
export declare class EigenLayerClient {
    private provider;
    private signer?;
    private vaultTypeClient;
    private vaultCache;
    constructor(provider: ethers.Provider, signer?: ethers.Signer);
    /**
     * Get the SuperVault contract instance
     * @param vaultAddress The address of the SuperVault
     * @returns The SuperVault contract instance
     */
    private getSuperVaultContract;
    /**
     * Get the vault contract instance
     * @param vaultAddress The address of the vault or SuperVault
     * @returns The vault contract instance
     */
    private getVaultContract;
    /**
     * Clear the cache for a specific vault or all vaults
     * @param vaultAddress Optional address of the vault to clear from cache
     */
    clearCache(vaultAddress?: string): void;
    /**
     * Get the Eigen Operator of a vault
     * @param vaultAddress The address of the vault
     * @returns The Eigen Operator
     */
    getEigenOperator(vaultAddress: string): Promise<string>;
    /**
     * Set the Eigen Operator of a vault
     * @param vaultAddress The address of the vault
     * @param operator The new Eigen Operator
     * @param approverSignatureAndExpiry The signature and expiry for the approver
     * @param approverSalt The salt for the approver
     * @param options Optional transaction parameters like gas limit, gas price, etc.
     * @returns Transaction response
     */
    setEigenOperator(vaultAddress: string, operator: string, approverSignatureAndExpiry: {
        signature: string;
        expiry: number;
    }, approverSalt: string, options?: Partial<ethers.TransactionRequest>): Promise<ethers.TransactionResponse>;
}
