import * as _$_typescript_eslint_utils_ts_eslint0 from "@typescript-eslint/utils/ts-eslint";
import { Linter } from "eslint";

//#region src/ruleset.d.ts
declare const ruleset: {
  recommended: {
    "effector/enforce-effect-naming-convention": "error";
    "effector/enforce-store-naming-convention": "error";
    "effector/keep-options-order": "warn";
    "effector/no-ambiguity-target": "warn";
    "effector/no-duplicate-on": "error";
    "effector/no-forward": "error";
    "effector/no-getState": "error";
    "effector/no-guard": "error";
    "effector/no-unnecessary-combination": "warn";
    "effector/no-unnecessary-duplication": "warn";
    "effector/no-useless-methods": "error";
    "effector/no-watch": "warn";
  };
  patronum: {
    "effector/no-patronum-debug": "warn";
  };
  scope: {
    "effector/require-pickup-in-persist": "error";
    "effector/strict-effect-handlers": "error";
  };
  react: {
    "effector/enforce-gate-naming-convention": "error";
    "effector/mandatory-scope-binding": "error";
    "effector/no-units-spawn-in-render": "error";
    "effector/prefer-useUnit": "error";
  };
  future: {
    "effector/no-domain-unit-creators": "warn";
  };
};
//#endregion
//#region src/index.d.ts
declare const base: {
  meta: {
    name: string;
    version: string;
    namespace: string;
  };
  rules: {
    "enforce-effect-naming-convention": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"invalid" | "rename", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "enforce-gate-naming-convention": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"invalid" | "rename", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "enforce-store-naming-convention": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"invalid" | "rename", [{
      mode: "prefix" | "postfix";
    }], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "keep-options-order": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"invalidOrder" | "changeOrder", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "mandatory-scope-binding": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"useUnitNeeded", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-ambiguity-target": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"ambiguous", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-domain-unit-creators": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"avoid", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-duplicate-clock-or-source-array-values": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"duplicate" | "remove", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-duplicate-on": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"duplicate", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-forward": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"noForward" | "replaceWithSample", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-getState": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"named" | "anonymous", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-guard": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"replaceWithSample" | "noGuard", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-patronum-debug": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"remove" | "unexpected", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-units-spawn-in-render": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"noFactoryInRender" | "noOperatorInRender" | "noCustomFactoryInRender", [{
      detectCustomFactories: true | false | {
        allowlist: string[];
      };
    }], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-unnecessary-combination": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"unnecessary", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-unnecessary-duplication": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"duplicate" | "removeClock" | "removeSource", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-useless-methods": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"uselessMethod", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "no-watch": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"restricted", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "prefer-useUnit": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"useUseUnit", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "require-pickup-in-persist": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"missing", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
    "strict-effect-handlers": _$_typescript_eslint_utils_ts_eslint0.RuleModule<"mixed", [], unknown, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
      name: string;
    };
  };
};
declare const legacyConfigs: {
  recommended: {
    rules: {
      "effector/enforce-effect-naming-convention": "error";
      "effector/enforce-store-naming-convention": "error";
      "effector/keep-options-order": "warn";
      "effector/no-ambiguity-target": "warn";
      "effector/no-duplicate-on": "error";
      "effector/no-forward": "error";
      "effector/no-getState": "error";
      "effector/no-guard": "error";
      "effector/no-unnecessary-combination": "warn";
      "effector/no-unnecessary-duplication": "warn";
      "effector/no-useless-methods": "error";
      "effector/no-watch": "warn";
    };
  };
  scope: {
    rules: {
      "effector/require-pickup-in-persist": "error";
      "effector/strict-effect-handlers": "error";
    };
  };
  react: {
    rules: {
      "effector/enforce-gate-naming-convention": "error";
      "effector/mandatory-scope-binding": "error";
      "effector/no-units-spawn-in-render": "error";
      "effector/prefer-useUnit": "error";
    };
  };
  future: {
    rules: {
      "effector/no-domain-unit-creators": "warn";
    };
  };
  patronum: {
    rules: {
      "effector/no-patronum-debug": "warn";
    };
  };
};
declare const flatConfigs: Record<keyof typeof ruleset, Linter.Config>;
declare const plugin: {
  flatConfigs: typeof flatConfigs; /** @deprecated Migrate to modern ESLint v9+ Flat Config format */
  configs: typeof legacyConfigs;
} & typeof base;
export = plugin;