import { Network as BitcoinNetwork, networks } from 'bitcoinjs-lib';
import { Network } from '../types';
import { COMPRESSED_PUBLIC_KEY_HEX_LENGTH, toXOnlyPublicKeyHex } from './publicKey';
export { COMPRESSED_PUBLIC_KEY_HEX_LENGTH, toXOnlyPublicKeyHex };
export declare const getTaprootAddress: (publicKey: string, network: Network) => string;
export declare const getNativeSegwitAddress: (publicKey: string, network: Network) => string;
export declare function validateAddressWithPK(address: string, publicKey: string, network: Network): boolean;
export declare function validateAddress(network: Network, address: string): void;
export declare const toNetwork: (network: Network) => networks.Network;
/**
 * Extracts the public key from an extended public key (xpub) using a specified derivation path.
 * @param xpub - The extended public key.
 * @param path - The derivation path.
 * @param network - The Bitcoin network.
 * @returns The public key as a Buffer.
 */
export declare const getPublicKeyFromXpub: (xpub: string, path: string, network?: BitcoinNetwork) => Buffer;
/**
 * Generates the p2tr Bitcoin address from an extended public key and a path.
 * @param xpub - The extended public key.
 * @param path - The derivation path.
 * @param network - The Bitcoin network.
 * @returns An object containing the address, public key in hex format, and scriptPubKey in hex format.
 */
export declare const generateP2TRAddressFromXpub: (xpub: string, path: string, network: BitcoinNetwork) => {
    address: string;
    publicKeyHex: string;
    scriptPubKeyHex: string;
};
