import { BlockNumber, Moment, RuntimeDbWeight } from "@polkadot/types/interfaces/runtime";
import { ApiPromise } from "@polkadot/api";
import { Vec } from "@polkadot/types/codec";
import { WeightToFeeCoefficient } from "@polkadot/types/interfaces/support";
/**
 * @category BTC Bridge
 * The type Big represents Wrapped or Collateral token denominations,
 * while the type BN represents Planck or Satoshi denominations.
 */
export interface ConstantsAPI {
    /**
     * @returns Maximum number of block number to block hash mappings to keep (oldest pruned first).
     */
    getSystemBlockHashCount(): BlockNumber;
    /**
     * @returns The weight of database operations that the runtime can invoke.
     */
    getSystemDbWeight(): RuntimeDbWeight;
    /**
     * @returns The minimum period between blocks. Beware that this is different to the *expected* period
     * that the block production apparatus provides. Your chosen consensus system will generally
     * work with this to determine a sensible block time. e.g. For Aura, it will be double this
     * period on default settings.
     */
    getTimestampMinimumPeriod(): Moment;
    /**
     * @returns The polynomial that is applied in order to derive fee from weight.
     */
    getTransactionWeightToFee(): Vec<WeightToFeeCoefficient>;
}
export declare class DefaultConstantsAPI implements ConstantsAPI {
    private api;
    constructor(api: ApiPromise);
    getSystemBlockHashCount(): BlockNumber;
    getSystemDbWeight(): RuntimeDbWeight;
    getTimestampMinimumPeriod(): Moment;
    getTransactionWeightToFee(): Vec<WeightToFeeCoefficient>;
}
