import { ApiPromise } from "@polkadot/api";
import { ElectrsAPI } from "../external/electrs";
import { BitcoinH256Le } from "@polkadot/types/lookup";
export declare const DEFAULT_STABLE_CONFIRMATIONS = 6;
/**
 * @category BTC Bridge
 */
export interface BTCRelayAPI {
    /**
     * @returns A global security parameter: the required block confirmations
     * for a transaction to be considered stable on Bitcoin
     */
    getStableBitcoinConfirmations(): Promise<number>;
    /**
     * @returns A global security parameter: the required block confirmations
     * for a transaction to be considered stable on the parachain
     */
    getStableParachainConfirmations(): Promise<number>;
    /**
     * @returns The raw transaction data, represented as a Buffer object
     */
    getLatestBlock(): Promise<BitcoinH256Le>;
    /**
     * @returns The height of the latest Bitcoin block that was rekayed by the BTC-Relay
     */
    getLatestBlockHeight(): Promise<number>;
    /**
     * Verifies the inclusion of a transaction with `txid` in the Bitcoin blockchain
     *
     * @param txid The ID of a Bitcoin transaction
     * @param confirmations The number of block confirmations needed to accept the inclusion proof.
     */
    verifyTransactionInclusion(txid: string, confirmations?: number): Promise<void>;
    /**
     * @returns True if the block is in the relay, false otherwise.
     */
    isBlockInRelay(blockHash: string): Promise<boolean>;
}
export declare class DefaultBTCRelayAPI implements BTCRelayAPI {
    private api;
    private electrsAPI;
    constructor(api: ApiPromise, electrsAPI: ElectrsAPI);
    getStableBitcoinConfirmations(): Promise<number>;
    getStableParachainConfirmations(): Promise<number>;
    getLatestBlock(): Promise<BitcoinH256Le>;
    getLatestBlockHeight(): Promise<number>;
    verifyTransactionInclusion(txid: string, confirmations?: number): Promise<void>;
    isBlockInRelay(blockHash: string): Promise<boolean>;
}
