import { ApiPromise } from "@polkadot/api"; import { Header, BlockHash } from "@polkadot/types/interfaces"; import { ExtrinsicData } from "../types"; /** * @category BTC Bridge */ export interface SystemAPI { /** * @returns The current block number being processed. */ getCurrentBlockNumber(): Promise; /** * @returns The current active block number being processed. */ getCurrentActiveBlockNumber(atBlock?: BlockHash): Promise; /** * On every new parachain block, call the callback function with the new block header * @param callback Function to be called with every new block header */ subscribeToFinalizedBlockHeads(callback: (blockHeader: Header) => void): Promise<() => void>; /** * On every new parachain block, call the callback function with the new block header * @param callback Function to be called with every new unfinalized block header */ subscribeToCurrentBlockHeads(callback: (blockHeader: Header) => void): Promise<() => void>; /** * @remarks Upgrades runtime using `sudoUncheckedWeight` * @param code Hex-encoded wasm blob * @returns {ExtrinsicData} A submittable extrinsic and an event that is emitted when extrinsic is submitted. */ setCode(code: string): ExtrinsicData; /** * @param blockNumber The block number to get the hash for * @returns The block hash for the given block number */ getBlockHash(blockNumber: number): Promise; /** * Get number of block that will added in amount of seconds from now. * * @note Based on approximate block time of 12 seconds. * @param api Polkadot ApiPromise object. * @param secondsFromNow Amount of seconds in the future. * @returns Number of block added in future. */ getFutureBlockNumber(secondsFromNow: number): Promise; } export declare class DefaultSystemAPI implements SystemAPI { private api; constructor(api: ApiPromise); getCurrentBlockNumber(): Promise; getCurrentActiveBlockNumber(atBlock?: BlockHash): Promise; subscribeToFinalizedBlockHeads(callback: (blockHeader: Header) => void): Promise<() => void>; subscribeToCurrentBlockHeads(callback: (blockHeader: Header) => void): Promise<() => void>; setCode(code: string): ExtrinsicData; getBlockHash(blockNumber: number): Promise; getFutureBlockNumber(secondsFromNow: number): Promise; }