export interface OutputTarget {
    address?: string;
    script?: Buffer;
    value: number;
}
export interface ScriptPubKey {
    asm: string;
    hex: string;
    reqSigs: number;
    type: string;
    addresses: string[];
}
export interface Output {
    value: number;
    n: number;
    scriptPubKey: ScriptPubKey;
}
export interface Input {
    txid: string;
    vout: number;
    scriptSig: {
        asm: string;
        hex: string;
    };
    txinwitness: string[];
    sequence: number;
    coinbase?: string;
}
export interface Transaction {
    txid: string;
    hash: string;
    version: number;
    locktime: number;
    size: number;
    vsize: number;
    weight: number;
    vin: Input[];
    vout: Output[];
    confirmations?: number;
    hex: string;
}
export interface UTXO {
    txid: string;
    vout: number;
    value: number;
    address: string;
    derivationPath?: string;
}
export declare enum AddressType {
    LEGACY = "legacy",
    P2SH_SEGWIT = "p2sh-segwit",
    BECH32 = "bech32"
}
export declare enum SwapMode {
    P2SH = "p2sh",
    P2SH_SEGWIT = "p2shSegwit",
    P2WSH = "p2wsh"
}
export type AddressTxCounts = {
    [index: string]: number;
};
export interface PsbtInputTarget {
    index: number;
    derivationPath: string;
}
