import { Web3Provider } from "@ethersproject/providers";
import * as ably from "ably";
import { Environments } from "./constants";
import { IApproveSpenderPayload, IFillDetailsMetadata, ISportXArgs } from "./types/internal";
import { IActiveLeague, IDetailedRelayerMakerOrder, IGetTradesRequest, ILeague, ILiveScore, IMarket, IMetadata, INewOrder, IPendingBet, IPendingBetsRequest, IRelayerMakerOrder, IRelayerResponse, ISignedRelayerMakerOrder, ISport, ITradesResponse } from "./types/relayer";
export interface ISportX {
    init(): Promise<void>;
    getMetadata(): Promise<IMetadata>;
    getLeagues(): Promise<ILeague[]>;
    getSports(): Promise<ISport[]>;
    getActiveLeagues(): Promise<ILeague[]>;
    getActiveMarkets(mainLinesOnly?: boolean, eventId?: number, leagueId?: string, liveOnly?: boolean, betGroup?: string): Promise<IMarket[]>;
    getPopularMarkets(): Promise<IMarket[]>;
    marketLookup(marketHashes: string[]): Promise<IMarket[]>;
    newOrder(orders: INewOrder[]): Promise<IRelayerResponse>;
    cancelOrder(orderHashes: string[]): Promise<IRelayerResponse>;
    cancelAllOrders(): Promise<IRelayerResponse>;
    cancelOrdersByEvent(sportXeventId: string): Promise<IRelayerResponse>;
    getPendingOrFailedBets(pendingBetsRequest: IPendingBetsRequest): Promise<IPendingBet[]>;
    getOrders(marketHashes?: string[], maker?: string, baseToken?: string): Promise<IDetailedRelayerMakerOrder[]>;
    fillOrders(orders: IRelayerMakerOrder[], takerAmounts: string[], fillDetailsMetadata?: IFillDetailsMetadata, affiliateAddress?: string, approveProxyPayload?: IApproveSpenderPayload): Promise<IRelayerResponse>;
    getTrades(tradeRequest: IGetTradesRequest): Promise<ITradesResponse>;
    approveSportXContracts(token: string): Promise<any>;
    getRealtimeConnection(): ably.Types.RealtimePromise;
    getEip712Signature(payload: any): Promise<string>;
    getLiveScores(eventIds: string[]): Promise<ILiveScore[]>;
}
declare class SportX implements ISportX {
    private signingWallet;
    private relayerUrl;
    private provider;
    private initialized;
    private debug;
    private metadata;
    private ably;
    private environment;
    private privateKey;
    private sidechainChainId;
    private network;
    private baseTokenWrappers;
    private apiKey;
    constructor(env: Environments, customProviderUrl?: string, privateKey?: string, customProvider?: Web3Provider, apiUrl?: string, apiKey?: string);
    cancelOrder(orderHashes: string[]): Promise<IRelayerResponse>;
    cancelAllOrders(): Promise<IRelayerResponse>;
    cancelOrdersByEvent(sportXeventId: string): Promise<IRelayerResponse>;
    getPopularMarkets(): Promise<IMarket[]>;
    getRealtimeConnection(): ably.Types.RealtimePromise;
    init(): Promise<void>;
    getActiveLeagues(): Promise<IActiveLeague[]>;
    getMetadata(): Promise<IMetadata>;
    getLeagues(): Promise<ILeague[]>;
    getSports(): Promise<ISport[]>;
    getLiveScores(eventIds: string[]): Promise<ILiveScore[]>;
    getActiveMarkets(mainLinesOnly?: boolean, eventId?: number, leagueId?: string, liveOnly?: boolean, betGroup?: string): Promise<IMarket[]>;
    marketLookup(marketHashes: string[]): Promise<IMarket[]>;
    newOrder(orders: INewOrder[]): Promise<IRelayerResponse>;
    fillOrders(orders: ISignedRelayerMakerOrder[], takerAmounts: string[], fillDetailsMetadata?: IFillDetailsMetadata, affiliateAddress?: string, approveProxyPayload?: IApproveSpenderPayload): Promise<IRelayerResponse>;
    getPendingOrFailedBets(request: IPendingBetsRequest): Promise<IPendingBet[]>;
    getTrades(tradeRequest: IGetTradesRequest): Promise<ITradesResponse>;
    getOrders(marketHashes?: string[], maker?: string, baseToken?: string): Promise<IDetailedRelayerMakerOrder[]>;
    approveSportXContracts(token: string): Promise<any>;
    getEip712Signature(payload: any): Promise<string>;
    private tryParseResponse;
    private verifyChainIds;
}
export declare function newSportX(sportXObj: ISportXArgs): Promise<SportX>;
export declare function getValidEnv(env: string): Environments;
export {};
