import { Linter } from "eslint";

//#region src/types/sfcc-settings.d.ts
interface SfccSettings {
  allowBareModules?: string[];
  checkCartridgeExists?: boolean;
  cartridgesDir?: string;
  cartridgePath?: string[];
  siteTemplatePath?: string;
  site?: string;
}
//#endregion
//#region src/configs/recommended.d.ts
interface RecommendedConfigOptions {
  /** Base directory that contains all cartridges (with or without trailing /). */
  cartridgesDir?: string;
  /** Optional override for file globs. */
  files?: string[];
  /** Optional override for ignore globs. */
  ignores?: string[];
  /** Optional shared options for sfcc rules. */
  sfcc?: SfccSettings;
}
/** Creates the recommended flat config for SFCC projects. */
declare function createRecommendedConfig(options?: RecommendedConfigOptions): Linter.Config[];
/** Shareable config for SFCC projects */
declare const recommended: Linter.Config[];
//#endregion
//#region src/plugins/sfcc/index.d.ts
declare const sfcc: {
  rules: {
    "no-ds-files": import("eslint").Rule.RuleModule;
    "no-e4x-syntax": import("eslint").Rule.RuleModule;
    "no-type-annotations": import("eslint").Rule.RuleModule;
    "no-rhino-import-globals": import("eslint").Rule.RuleModule;
    "prefer-const": import("eslint").Rule.RuleModule;
    "rhino-const-compat": import("eslint").Rule.RuleModule;
    "rhino-const-conflict": import("eslint").Rule.RuleModule;
    "valid-require-path": import("eslint").Rule.RuleModule;
  };
};
//#endregion
//#region src/plugins/sitegenesis/index.d.ts
declare const sitegenesis: {
  rules: {
    "no-global-require": import("eslint").Rule.RuleModule;
  };
};
//#endregion
//#region src/index.d.ts
declare const configs: {
  recommended: Linter.Config[];
};
declare const plugins: {
  sfcc: {
    rules: {
      "no-ds-files": import("eslint").Rule.RuleModule;
      "no-e4x-syntax": import("eslint").Rule.RuleModule;
      "no-type-annotations": import("eslint").Rule.RuleModule;
      "no-rhino-import-globals": import("eslint").Rule.RuleModule;
      "prefer-const": import("eslint").Rule.RuleModule;
      "rhino-const-compat": import("eslint").Rule.RuleModule;
      "rhino-const-conflict": import("eslint").Rule.RuleModule;
      "valid-require-path": import("eslint").Rule.RuleModule;
    };
  };
  sitegenesis: {
    rules: {
      "no-global-require": import("eslint").Rule.RuleModule;
    };
  };
};
declare const eslintConfigSfcc: {
  configs: typeof configs;
  plugins: typeof plugins;
};
//#endregion
export { configs, createRecommendedConfig, eslintConfigSfcc as default, plugins, recommended, sfcc, sitegenesis };