import { __exports as out } from '../../../../../../../_virtual/index11.mjs';
import { __require as requireAsync } from './providers/async.mjs';
import { __require as requireSync } from './providers/sync.mjs';
import { __require as requireSettings } from './settings.mjs';

var hasRequiredOut;
function requireOut() {
  if (hasRequiredOut) return out;
  hasRequiredOut = 1;
  Object.defineProperty(out, "__esModule", {
    value: true
  });
  out.statSync = out.stat = out.Settings = void 0;
  const async = requireAsync();
  const sync = requireSync();
  const settings_1 = requireSettings();
  out.Settings = settings_1.default;
  function stat(path, optionsOrSettingsOrCallback, callback) {
    if (typeof optionsOrSettingsOrCallback === 'function') {
      async.read(path, getSettings(), optionsOrSettingsOrCallback);
      return;
    }
    async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
  }
  out.stat = stat;
  function statSync(path, optionsOrSettings) {
    const settings = getSettings(optionsOrSettings);
    return sync.read(path, settings);
  }
  out.statSync = statSync;
  function getSettings(settingsOrOptions = {}) {
    if (settingsOrOptions instanceof settings_1.default) {
      return settingsOrOptions;
    }
    return new settings_1.default(settingsOrOptions);
  }
  return out;
}

export { requireOut as __require };
