/**
 * @file apis.ts
 * @author astra <astra@volare.finance>
 * @date 2022
 */
import { Address, BigNumber, IERC20Address, IFilter } from '@volare.finance/utils.js';
import { Axios } from 'axios';
import { IOracleAddress, IVolareAddress } from '../volare';
import { Collateral } from './collateral';
import { ICash, ILongPnL, IShort, IVaultPnL } from './interfaces';
import { Log } from './log';
import { Long } from './long';
import { Notification } from './notification';
import { Price } from './price';
import { Swap } from './swap';
import { Vault } from './vault';
import { VToken } from './vToken';
import { Whitelist } from './whitelist';
export interface ApisOptions {
    config?: BigNumber.Config;
    url: string;
    endpoint: string;
    contracts: IERC20Address & IOracleAddress & IVolareAddress;
}
export declare class Apis {
    config: BigNumber.Config;
    instance: Axios;
    price: Price;
    whitelist: Whitelist;
    vToken: VToken;
    collateral: Collateral;
    long: Long;
    vault: Vault;
    swap: Swap;
    log: Log;
    notification: Notification;
    contracts: IERC20Address & IOracleAddress & IVolareAddress;
    constructor(options: ApisOptions);
    private erc20;
    cash(): Promise<ICash>;
    longPnLByOwnerAndVToken(owner: Address, vTokenAddress: Address, start?: number, end?: number, filter?: IFilter): Promise<Array<ILongPnL>>;
    shorts(owner?: Address, vTokenAddress?: Address, isExpired?: boolean, isSettled?: boolean, filter?: IFilter): Promise<Array<IShort>>;
    vaultPnLByOwnerAndVaultId(owner: Address, vaultId: number, start?: number, end?: number, isDetailed?: boolean, filter?: IFilter): Promise<Array<IVaultPnL>>;
}
