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/enforce-exhaustive-useUnit-destructuring": "warn";
    "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": import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalid" | "rename", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "enforce-exhaustive-useUnit-destructuring": import("@typescript-eslint/utils/ts-eslint").RuleModule<"unusedKey" | "missingKey", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "enforce-gate-naming-convention": import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalid" | "rename", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "enforce-store-naming-convention": import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalid" | "rename", [{
      mode: "prefix" | "postfix";
    }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "keep-options-order": import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidOrder" | "changeOrder", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "mandatory-scope-binding": import("@typescript-eslint/utils/ts-eslint").RuleModule<"useUnitNeeded", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-ambiguity-target": import("@typescript-eslint/utils/ts-eslint").RuleModule<"ambiguous", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-domain-unit-creators": import("@typescript-eslint/utils/ts-eslint").RuleModule<"avoid", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-duplicate-clock-or-source-array-values": import("@typescript-eslint/utils/ts-eslint").RuleModule<"duplicate" | "remove", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-duplicate-on": import("@typescript-eslint/utils/ts-eslint").RuleModule<"duplicate", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-forward": import("@typescript-eslint/utils/ts-eslint").RuleModule<"noForward" | "replaceWithSample", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-getState": import("@typescript-eslint/utils/ts-eslint").RuleModule<"named" | "anonymous", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-guard": import("@typescript-eslint/utils/ts-eslint").RuleModule<"replaceWithSample" | "noGuard", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-patronum-debug": import("@typescript-eslint/utils/ts-eslint").RuleModule<"remove" | "unexpected", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-units-spawn-in-render": import("@typescript-eslint/utils/ts-eslint").RuleModule<"noFactoryInRender" | "noOperatorInRender" | "noCustomFactoryInRender", [{
      detectCustomFactories: true | false | {
        allowlist: string[];
      };
    }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-unnecessary-combination": import("@typescript-eslint/utils/ts-eslint").RuleModule<"unnecessary", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-unnecessary-duplication": import("@typescript-eslint/utils/ts-eslint").RuleModule<"duplicate" | "removeClock" | "removeSource", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-useless-methods": import("@typescript-eslint/utils/ts-eslint").RuleModule<"uselessMethod", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "no-watch": import("@typescript-eslint/utils/ts-eslint").RuleModule<"restricted", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "prefer-useUnit": import("@typescript-eslint/utils/ts-eslint").RuleModule<"useUseUnit", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "require-pickup-in-persist": import("@typescript-eslint/utils/ts-eslint").RuleModule<"missing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
      name: string;
    };
    "strict-effect-handlers": import("@typescript-eslint/utils/ts-eslint").RuleModule<"mixed", [], unknown, import("@typescript-eslint/utils/ts-eslint").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/enforce-exhaustive-useUnit-destructuring": "warn";
      "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;