import * as bitcoinjs from "bitcoinjs-lib";
export { bitcoinjs as bitcoin };
import { H160 } from "@polkadot/types/interfaces";
import { BitcoinAddress } from "@polkadot/types/lookup";
import { TypeRegistry, Bytes } from "@polkadot/types";
import { ElectrsAPI } from "../external";
import { BTCRelayAPI } from "../parachain";
import { BitcoinCoreClient } from "../utils";
export declare function encodeBtcAddress(address: BitcoinAddress, network: bitcoinjs.Network): string;
export declare function btcAddressFromParams(registry: TypeRegistry, params: {
    p2pkh: H160 | string;
} | {
    p2sh: H160 | string;
} | {
    p2wpkhv0: H160 | string;
}): BitcoinAddress;
export declare function decodeBtcAddress(address: string, network: bitcoinjs.Network): {
    p2pkh: string;
} | {
    p2sh: string;
} | {
    p2wpkhv0: string;
};
export declare function getTxProof(electrsAPI: ElectrsAPI, btcTxId: string): Promise<{
    merkleProof: Bytes;
    rawTx: Bytes;
}>;
export declare function waitForBlockRelaying(btcRelayAPI: BTCRelayAPI, blockHash: string, sleepMs?: number): Promise<void>;
export declare function waitForBlockFinalization(bitcoinCoreClient: BitcoinCoreClient, btcRelayAPI: BTCRelayAPI): Promise<void>;
