"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var BdxClient_exports = {};
__export(BdxClient_exports, {
  BdxClient: () => BdxClient
});
module.exports = __toCommonJS(BdxClient_exports);
var import_BdxSession = require("./BdxSession.js");
/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
class BdxClient {
  #session;
  /**
   * Create a BDX client to initiate a BDX transfer as sender.
   * A file designator needs to be provided and needs to exist in the storage context.
   */
  static asSender(messenger, options) {
    return new BdxClient(import_BdxSession.BdxSession.asSender(messenger, options));
  }
  /**
   * Create a BDX client to initiate a BDX transfer as receiver.
   * A file designator needs to be provided. The content will be written to the storage context.
   */
  static asReceiver(messenger, options) {
    return new BdxClient(import_BdxSession.BdxSession.asReceiver(messenger, options));
  }
  constructor(bdxSession) {
    this.#session = bdxSession;
  }
  get progressInfo() {
    return this.#session.progressInfo;
  }
  get progressFinished() {
    return this.#session.progressFinished;
  }
  /** This is the main entry point to initiate and process the BDX transfer. */
  processTransfer() {
    return this.#session.processTransfer();
  }
  close() {
    return this.#session.close();
  }
}
//# sourceMappingURL=BdxClient.js.map
