import { web3 } from '@coral-xyz/anchor';
import { UserVaultState, UserVaultStruct, UserVaultStructSerialized } from './UserVault.types';
import { FetchUserVaultsFilters } from './UserVault.fetchers';
import { GetUpdateUserVaultIxnsParams } from '../../../core/instructions/UserVault/getUpdateUserVaultIxns';
import { BanxMarket } from '../BanxMarket/BanxMarket';
export declare class UserVault {
    readonly struct: Readonly<UserVaultStruct>;
    constructor(userVault: UserVaultStruct);
    static fromSerialized(userVaultSerialized: UserVaultStructSerialized): UserVault;
    serialize(): UserVaultStructSerialized;
    static fetch(connection: web3.Connection, publicKey: web3.PublicKey): Promise<UserVault | null>;
    static fetchMultiple(connection: web3.Connection, publicKeys: web3.PublicKey[]): Promise<UserVault[]>;
    static fetchAll(connection: web3.Connection, filters?: FetchUserVaultsFilters): Promise<UserVault[]>;
    getState(): UserVaultState;
    getUpdateIxns(params: GetUpdateUserVaultIxnsParams['args'] & {
        banxMarket: BanxMarket;
    }, connection: web3.Connection): Promise<{
        mutatedAccounts: {
            userVault: web3.PublicKey;
        };
        instructions: web3.TransactionInstruction[];
        signers: web3.Signer[];
    }>;
}
