/* tslint:disable */
/* eslint-disable */

/* auto-generated by NAPI-RS */

export declare function initNativeModule(): string
export declare function quickVmTest(): string
export declare function getVersion(): string
export declare class WalletManager {
  constructor()
  /**
   * Generate spending key from BIP39 seed phrase
   *
   * # Arguments
   * * `seed_phrase` - Array of words (12, 15, 18, 21, or 24 words)
   *
   * # Returns
   * JSON with spending_key_hex, view_key_hex, receiver_identifier
   */
  generateKeysFromSeed(seedPhrase: Array<string>): string
  /**
   * Generate lock_script_and_witness (transaction signature)
   *
   * # Arguments
   * * `spending_key_hex` - Hex-encoded spending key from generate_keys_from_seed
   *
   * # Returns
   * JSON with lock_script_and_witness in hex format
   */
  createLockScriptAndWitness(spendingKeyHex: string): string
  /** Derive ViewKey hex (0x-prefixed bincode) from a Generation spending key hex */
  spendingKeyToViewKeyHex(spendingKeyHex: string): string
  /** Call wallet_getAdditionRecordsFromViewKey and return JSON as string */
  getAdditionRecordsFromViewKeyCall(rpcUrl: string, viewKeyHex: string, startBlock: number, endBlock: number | undefined | null, maxSearchDepth: number): Promise<string>
  /**
   * Build RPC request to get UTXOs from view key
   *
   * # Arguments
   * * `view_key_hex` - Hex-encoded view key from generate_keys_from_seed
   * * `start_block` - Starting block height (0 for genesis)
   * * `end_block` - Ending block height (current tip)
   * * `max_search_depth` - Maximum blocks to search (default: 1000)
   *
   * # Returns
   * JSON-RPC request ready to send
   *
   * # Note
   * Method name format: namespace_method (e.g. wallet_getUtxosFromViewKey)
   */
  buildGetUtxosRequest(viewKeyHex: string, startBlock: number, endBlock: number, maxSearchDepth?: number | undefined | null): string
  /** Build RPC request to test chain height (for connectivity testing) */
  buildTestRpcRequest(): string
  /** Build JSON-RPC request to fetch current chain height */
  buildChainHeightRequest(): string
  /** Build JSON-RPC request to fetch current chain header (tip) */
  buildChainHeaderRequest(): string
  /** Get network information */
  getNetworkInfo(): string
  getChainHeightCall(rpcUrl: string): Promise<string>
  /** Call node_getState to get server state information */
  getStateCall(rpcUrl: string): Promise<string>
  /** Call mempool_submitTransaction to broadcast a pre-built transaction */
  submitTransactionCall(rpcUrl: string, transactionHex: string): Promise<string>
  getUtxosFromViewKeyCall(rpcUrl: string, viewKeyHex: string, startBlock: number, maxSearchDepth?: number | undefined | null): Promise<string>
  getArchivalMutatorSet(rpcUrl: string): Promise<string>
  /**
   * Build JSON-RPC request to find the canonical block that created a UTXO (by addition_record)
   * Method: archival_getUtxoCreationBlock
   */
  buildGetUtxoCreationBlockRequest(additionRecordHex: string, maxSearchDepth?: number | undefined | null): string
  /** Perform JSON-RPC call to find the canonical block that created a UTXO (by addition_record) */
  getUtxoCreationBlockCall(rpcUrl: string, additionRecordHex: string, maxSearchDepth?: number | undefined | null): Promise<string>
  /** Call wallet_sendWithSpendingKey to build and broadcast transaction */
  generateUtxoWithProofCall(rpcUrl: string, utxoHex: string, additionRecordHex: string, senderRandomnessHex: string, receiverPreimageHex: string, maxSearchDepth: string): Promise<string>
}
export declare class SimpleTransactionBuilder {
  constructor()
  buildTransaction(rpcUrl: string, spendingKeyHex: string, inputAdditionRecords: Array<string>, minBlockHeight: number, outputAddresses: Array<string>, outputAmounts: Array<string>, fee: string): Promise<string>
}
