import { Contract, Signer, ContractTransactionResponse } from 'ethers';
import { IOHLCV } from 'candlestick-convert';
import { CurrencyInfo, MarketInfo, Skew, Value } from '../types';
import { CurrencySymbol, Direction, Timeframe } from '../enums';
import { Currency } from './currency';
import { Oracle } from './oracle';
export declare class Market {
    private contract;
    private signer;
    private metadata?;
    private oracle?;
    constructor(_contract: Contract, _signer: Signer);
    static initialize(_address: string, _signer: Signer): Promise<Market>;
    getInfo(): Promise<MarketInfo>;
    getMetadata(force?: boolean): Promise<any>;
    getAddress(): Promise<string>;
    getSkew(): Promise<Skew>;
    getReferenceValue(_currencyInfo: CurrencyInfo): Promise<Value>;
    getOracle(): Promise<Oracle>;
    getTicks(): Promise<any>;
    getOHLCV(_timeframe: Timeframe): Promise<IOHLCV[]>;
    getCurrencyInfo(_address: string | CurrencySymbol): Promise<CurrencyInfo>;
    getPositionValue(_positionId: number): Promise<Value>;
    closePosition(_positionId: number): Promise<ContractTransactionResponse>;
    openPosition(_direction: Direction, _currency: Currency, _amount: number): Promise<ContractTransactionResponse[]>;
    commitValueTransfer(): Promise<ContractTransactionResponse>;
}
