/* tslint:disable */
/* eslint-disable */
export class AddressNamespace {
  private constructor();
  free(): void;
  [Symbol.dispose](): void;
  static to_output_script_with_coin(address: string, coin: string): Uint8Array;
  static from_output_script_with_coin(script: Uint8Array, coin: string, format?: string | null): string;
}
export class BitGoPsbt {
  private constructor();
  free(): void;
  [Symbol.dispose](): void;
  /**
   * Deserialize a PSBT from bytes with network-specific logic
   */
  static from_bytes(bytes: Uint8Array, network: string): BitGoPsbt;
  /**
   * Parse outputs with wallet keys to identify which outputs belong to a wallet
   *
   * Note: This method does NOT validate wallet inputs. It only parses outputs.
   */
  parse_outputs_with_wallet_keys(wallet_keys: any): any;
  /**
   * Parse transaction with wallet keys to identify wallet inputs/outputs
   */
  parse_transaction_with_wallet_keys(wallet_keys: any, replay_protection: any): any;
}
export class FixedScriptWalletNamespace {
  private constructor();
  free(): void;
  [Symbol.dispose](): void;
  static output_script(keys: any, chain: number, index: number, network: any): Uint8Array;
  static address(keys: any, chain: number, index: number, network: any, address_format?: string | null): string;
}
export class UtxolibCompatNamespace {
  private constructor();
  free(): void;
  [Symbol.dispose](): void;
  /**
   * Convert address string to output script
   *
   * # Arguments
   * * `address` - The address string
   * * `network` - The UtxolibNetwork object from JavaScript
   * * `format` - Optional address format (currently unused for decoding as all formats are accepted)
   */
  static to_output_script(address: string, network: any, format?: string | null): Uint8Array;
  /**
   * Convert output script to address string
   *
   * # Arguments
   * * `script` - The output script as a byte array
   * * `network` - The UtxolibNetwork object from JavaScript
   * * `format` - Optional address format: "default" or "cashaddr" (only applicable for Bitcoin Cash and eCash)
   */
  static from_output_script(script: Uint8Array, network: any, format?: string | null): string;
}
export class WrapDescriptor {
  private constructor();
  free(): void;
  [Symbol.dispose](): void;
  hasWildcard(): boolean;
  scriptPubkey(): Uint8Array;
  toAsmString(): string;
  atDerivationIndex(index: number): WrapDescriptor;
  maxWeightToSatisfy(): number;
  node(): any;
  encode(): Uint8Array;
  descType(): any;
  toString(): string;
}
export class WrapMiniscript {
  private constructor();
  free(): void;
  [Symbol.dispose](): void;
  toAsmString(): string;
  node(): any;
  encode(): Uint8Array;
  toString(): string;
}
export class WrapPsbt {
  private constructor();
  free(): void;
  [Symbol.dispose](): void;
  static deserialize(psbt: Uint8Array): WrapPsbt;
  finalize(): void;
  signWithPrv(prv: Uint8Array): any;
  signWithXprv(xprv: string): any;
  updateInputWithDescriptor(input_index: number, descriptor: WrapDescriptor): void;
  updateOutputWithDescriptor(output_index: number, descriptor: WrapDescriptor): void;
  clone(): WrapPsbt;
  serialize(): Uint8Array;
}
