import { AugustBase, IAugustBase } from '@augustdigital/utils';
import type { IAddress, IChainId, IEnv, IVaultPosition, IVaultUserHistoryItem } from '@augustdigital/types';
export interface IVaultBaseOptions {
    rpcUrl: string;
    env?: IEnv;
    augustKey?: string;
    subgraphKey: string;
    chainId?: number;
}
export interface IVaultCustomOptions {
    loans?: boolean;
    allocations?: boolean;
    wallet?: IAddress;
}
export declare class AugustVaults extends AugustBase {
    constructor(baseConfig: IAugustBase);
    getVaults(options?: {
        chainIds?: number[];
    } & IVaultCustomOptions): Promise<import("@augustdigital/types").IVault[]>;
    getVault({ vault, chainId, options, }: {
        vault: IAddress;
        chainId?: IChainId;
        options?: IVaultCustomOptions;
    }): Promise<import("@augustdigital/types").IVault>;
    getVaultLoans({ vault, chainId, }: {
        vault: IAddress;
        chainId?: IChainId;
    }): Promise<import("@augustdigital/types").IVaultLoan[]>;
    getVaultAllocations({ vault, chainId, }: {
        vault: IAddress;
        chainId?: IChainId;
    }): Promise<import("@augustdigital/types").IVaultAllocations>;
    getVaultApy(vault: IAddress): Promise<number>;
    getAvailableRedemptions({ vault, chainId, wallet, }: {
        vault: IAddress;
        chainId?: number;
        wallet?: IAddress;
    }): Promise<{
        availableRedemptions: import("@augustdigital/types").IVaultAvailableRedemption[];
        pendingRedemptions: import("@augustdigital/types").IVaultAvailableRedemption[];
    }>;
    getPositions({ vault, wallet, chainId, showAllVaults, }: {
        vault?: IAddress;
        wallet: IAddress;
        chainId?: IChainId;
        showAllVaults?: boolean;
    }): Promise<IVaultPosition[]>;
    getUserHistory({ wallet, chainId, vault }: {
        wallet: IAddress;
        chainId?: IChainId;
        vault?: IAddress;
    }): Promise<IVaultUserHistoryItem[]>;
    getUserTransfers({ wallet, chainId, vault }: {
        wallet: IAddress;
        chainId?: IChainId;
        vault?: IAddress;
    }): Promise<{
        id: string;
        value: string;
        to: string;
        from: string;
        pool: string;
        block: number;
        timestamp: number;
        transactionHash: string;
    }[]>;
    getStakingPositions(wallet?: IAddress, chainId?: IChainId): Promise<import("@augustdigital/types").IActiveStakingPosition[]>;
    getVaultExposure(debankResponse: any): {
        borrowing_exposure: {
            symbol: string;
            chain: string;
            amount: number;
        }[];
        supplying_exposure: {
            symbol: string;
            chain: string;
            amount: number;
        }[];
        wallet_exposure: {
            symbol: string;
            chain: string;
            amount: number;
        }[];
    };
}
