import { Linter } from "eslint";

//#region src/index.d.ts
declare const plugin: {
  rules: {
    "ban-side-effects": import("eslint").Rule.RuleModule;
    "ban-default-true": import("eslint").Rule.RuleModule;
    "ban-exported-const-enums": import("eslint").Rule.RuleModule;
    "dependency-suggestions": import("eslint").Rule.RuleModule;
    "enforce-slot-jsdoc": import("eslint").Rule.RuleModule;
    "strict-boolean-conditions": import("eslint").Rule.RuleModule;
    "async-methods": import("eslint").Rule.RuleModule;
    "ban-prefix": import("eslint").Rule.RuleModule;
    "class-pattern": import("eslint").Rule.RuleModule;
    "decorators-context": import("eslint").Rule.RuleModule;
    "decorators-style": import("eslint").Rule.RuleModule;
    "element-type": import("eslint").Rule.RuleModule;
    "host-data-deprecated": import("eslint").Rule.RuleModule;
    "methods-must-be-public": import("eslint").Rule.RuleModule;
    "no-unused-watch": import("eslint").Rule.RuleModule;
    "own-methods-must-be-private": import("eslint").Rule.RuleModule;
    "own-props-must-be-private": import("eslint").Rule.RuleModule;
    "prefer-vdom-listener": import("eslint").Rule.RuleModule;
    "props-must-be-public": import("eslint").Rule.RuleModule;
    "props-must-be-readonly": import("eslint").Rule.RuleModule;
    "render-returns-host": import("eslint").Rule.RuleModule;
    "required-jsdoc": import("eslint").Rule.RuleModule;
    "required-prefix": import("eslint").Rule.RuleModule;
    "reserved-member-names": import("eslint").Rule.RuleModule;
    "single-export": import("eslint").Rule.RuleModule;
    "strict-mutable": import("eslint").Rule.RuleModule;
  };
  configs: {
    base: {
      overrides: {
        files: string[];
        parser: string;
        parserOptions: {
          ecmaVersion: 2018;
          sourceType: "module";
          ecmaFeatures: {
            jsx: true;
          };
        };
        env: {
          es2020: true;
          browser: true;
        };
        plugins: string[];
        rules: {
          "stencil/async-methods": 2;
          "stencil/ban-prefix": [2, string[]];
          "stencil/decorators-context": 2;
          "stencil/element-type": 2;
          "stencil/host-data-deprecated": 2;
          "stencil/methods-must-be-public": 2;
          "stencil/no-unused-watch": 2;
          "stencil/prefer-vdom-listener": 2;
          "stencil/props-must-be-public": 2;
          "stencil/render-returns-host": 2;
          "stencil/reserved-member-names": 2;
          "stencil/single-export": 2;
        };
      }[];
      settings: {
        react: {
          version: string;
        };
      };
    };
    recommended: {
      plugins: string[];
      extends: string[];
      rules: {
        "stencil/strict-boolean-conditions": 1;
        "stencil/ban-default-true": 1;
        "stencil/ban-exported-const-enums": 2;
        "stencil/ban-side-effects": 2;
        "stencil/strict-mutable": 2;
        "stencil/decorators-style": ["error", {
          prop: string;
          state: string;
          element: string;
          event: string;
          method: string;
          watch: string;
          listen: string;
        }];
        "stencil/own-methods-must-be-private": 1;
        "stencil/own-props-must-be-private": 1;
        "stencil/dependency-suggestions": 1;
        "stencil/required-jsdoc": 1;
        "stencil/enforce-slot-jsdoc": 1;
        "react/jsx-no-bind": [1, {
          ignoreRefs: boolean;
        }];
      };
    };
    strict: {
      extends: string[];
      rules: {
        "stencil/ban-default-true": 2;
        "stencil/strict-boolean-conditions": 2;
        "@typescript-eslint/explicit-function-return-type": 0;
        "@typescript-eslint/no-this-alias": 0;
        "@typescript-eslint/no-non-null-assertion": 0;
        "@typescript-eslint/no-unused-vars": 0;
        "@typescript-eslint/no-empty-interface": 0;
        "@typescript-eslint/no-use-before-define": 0;
        "@typescript-eslint/no-explicit-any": 0;
        "no-shadow": 2;
        "no-var": 2;
        "prefer-object-spread": 2;
        "no-nested-ternary": 2;
        "no-duplicate-imports": 2;
        curly: [2, string];
      };
    };
    oxlint: {
      [x: string]: ("off" | "warn" | "error") | ["off" | "warn" | "error", ...unknown[]];
    };
    flat: Record<string, Linter.Config>;
  };
};
//#endregion
export { plugin as default };
//# sourceMappingURL=index.d.ts.map