import * as eslint0 from "eslint";
import { Linter } from "eslint";

//#region src/index.d.ts

declare const plugin: {
  rules: {
    'ban-side-effects': eslint0.Rule.RuleModule;
    'ban-default-true': eslint0.Rule.RuleModule;
    'ban-exported-const-enums': eslint0.Rule.RuleModule;
    'dependency-suggestions': eslint0.Rule.RuleModule;
    'strict-boolean-conditions': eslint0.Rule.RuleModule;
    'async-methods': eslint0.Rule.RuleModule;
    'ban-prefix': eslint0.Rule.RuleModule;
    'class-pattern': eslint0.Rule.RuleModule;
    'decorators-context': eslint0.Rule.RuleModule;
    'decorators-style': eslint0.Rule.RuleModule;
    'element-type': eslint0.Rule.RuleModule;
    'host-data-deprecated': eslint0.Rule.RuleModule;
    'methods-must-be-public': eslint0.Rule.RuleModule;
    'no-unused-watch': eslint0.Rule.RuleModule;
    'own-methods-must-be-private': eslint0.Rule.RuleModule;
    'own-props-must-be-private': eslint0.Rule.RuleModule;
    'prefer-vdom-listener': eslint0.Rule.RuleModule;
    'props-must-be-public': eslint0.Rule.RuleModule;
    'props-must-be-readonly': eslint0.Rule.RuleModule;
    'render-returns-host': eslint0.Rule.RuleModule;
    'required-jsdoc': eslint0.Rule.RuleModule;
    'required-prefix': eslint0.Rule.RuleModule;
    'reserved-member-names': eslint0.Rule.RuleModule;
    'single-export': eslint0.Rule.RuleModule;
    'strict-mutable': eslint0.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;
        "react/jsx-no-bind": [1, {
          ignoreRefs: boolean;
        }];
      };
    };
    strict: {
      extends: string[];
      rules: {
        'stencil/ban-default-true': 2;
        'stencil/strict-boolean-conditions': 2;
        "@typescript-eslint/camelcase": 0;
        "@typescript-eslint/explicit-function-return-type": 0;
        "@typescript-eslint/ban-ts-ignore": 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-constant-condition": 0;
        "no-shadow": 2;
        "no-var": 2;
        "prefer-object-spread": 2;
        "no-nested-ternary": 2;
        "no-duplicate-imports": 2;
        indent: [2, number];
        "no-trailing-spaces": 2;
        curly: [2, string];
        "comma-spacing": 2;
        "comma-style": 2;
        "computed-property-spacing": 2;
        "comma-dangle": [2, {
          objects: string;
        }];
        "func-style": [2, string, {
          allowArrowFunctions: boolean;
        }];
        "multiline-ternary": [2, string];
        "operator-linebreak": [2, string, {
          overrides: {
            "?": string;
            ":": string;
          };
        }];
        "linebreak-style": 2;
        "space-in-parens": 2;
        "@typescript-eslint/semi": 2;
        "@typescript-eslint/brace-style": 2;
        "@typescript-eslint/func-call-spacing": 2;
        "react/jsx-closing-tag-location": 2;
        "react/jsx-curly-newline": [2, string];
        "react/jsx-closing-bracket-location": 2;
        "react/jsx-curly-spacing": [2, {
          when: string;
          children: boolean;
        }];
        "react/jsx-boolean-value": [2, string];
        "react/jsx-child-element-spacing": 2;
        "react/jsx-indent-props": [2, string];
        "react/jsx-props-no-multi-spaces": 2;
        "react/jsx-equals-spacing": [2, string];
      };
    };
    flat: Record<string, Linter.Config>;
  };
};
//#endregion
export { plugin as default };
//# sourceMappingURL=index.d.ts.map