import { SDK } from 'rm-sdk/build/';
import { Token } from 'rm-sdk/build/interfaces/token.interface';
import { Environment, FrontendOperator, Market, Policy, Pool, PoolParticipant } from 'rm-sdk/build/types';
import BigNumber from "bignumber.js";
import { ContractTransaction, providers } from "ethers";
import { QueryService } from 'rm-sdk';
import { EntityValue } from 'rm-sdk/build/services/api.service';
import { GraphVersionEnum } from 'rm-sdk/build/types';
export declare class QuoteLoader {
    sdk: SDK;
    market?: Market;
    premiumToken?: Token;
    capitalToken?: Token;
    insuredToken?: Token;
    monthlyQuote?: BigNumber;
    minDeposit?: BigNumber;
    topUpValue?: BigNumber;
    quote?: BigNumber;
    rate?: BigNumber;
    policy?: Policy;
    policyList: Policy[] | undefined;
    frontendOperator?: FrontendOperator;
    quoteCoefficient?: number;
    bonusCoefficient?: number;
    bonus?: BigNumber;
    total?: BigNumber;
    duration?: number;
    marketCoverage?: [string, string];
    queryService: QueryService;
    environment: Environment | string;
    constructor(env: Environment | string);
    load(provider: providers.Web3Provider, duration: number, marketId: string, desiredCoverage: string, frontendOperator?: string): Promise<boolean>;
    initMarketRate(market: Market, frontendOperator: FrontendOperator | undefined): void;
    calcQuote(provider: providers.Web3Provider, desiredCoverage: string, duration: number): Promise<boolean>;
    updateTopUpValue(value: string): void;
    getExchangeRate(fromToken: string, toToken: string): Promise<number | undefined>;
    getPremiumTokenAllowance(provider: providers.Web3Provider): Promise<string | null>;
    getAddressToApprove(version: GraphVersionEnum): string | undefined;
    getPremiumTokenBalance(provider: providers.Web3Provider): Promise<string | null>;
    approvePremiumToken(provider: providers.Web3Provider): Promise<false | ContractTransaction>;
    isUserHasPolicies(provider: providers.Web3Provider): Promise<boolean>;
    getPolicy(policyId: string): Promise<Policy | undefined>;
    isWalletChainCorrect(provider: providers.Web3Provider): Promise<boolean>;
    buyPolicy(provider: providers.Web3Provider, desiredCoverage: string, deposit: string, frontendOperator?: string, referrer?: string): Promise<false | ContractTransaction>;
    cancelPolicy(provider: providers.Web3Provider, policy: Policy): Promise<false | ContractTransaction>;
    isMarketOpened(): Promise<boolean>;
    getMarketPools(): Promise<Pool[] | undefined>;
    getMarketCapacity(): Promise<BigNumber>;
    protected getPoolLPs(poolList: string[]): Promise<PoolParticipant[]>;
    getMarketEntities(): Promise<Array<EntityValue | undefined>>;
    getMarketLPCount(): Promise<number>;
    waitUntilGraphIsSynced(blockNumber: number): Promise<boolean>;
    uiUrl(): string | undefined;
}
