import type { Linter } from "eslint";
/**
 * Modules preset — the rules that govern a Medusa **module** (or provider)
 * package: its service(s), its module definition, and its data models.
 *
 * Unlike `recommended`, whose module rules are scoped to a `modules/`-nested
 * path (matching how modules live inside a Medusa application), this preset
 * targets the layout of a standalone module/provider package — Medusa's own
 * under `packages/modules`, or one a user authors as its own package:
 *
 * - Services — applied across the whole tree. These rules only report on
 *   classes extending `MedusaService`, so a broad scope is safe and needs no
 *   per-folder configuration.
 * - Module definition (`module-name-snake-case`) — scoped to the entry file
 *   `src/index.{ts,js}`, where `Module(...)` is called.
 * - Data models — scoped to model directories, where `model.define(...)` lives.
 * - `loader-must-be-exported-in-module-definition` inspects loader files (not
 *   the entry file), so it stays in the broad block alongside the service
 *   rules; it is self-guarding to loader paths.
 *
 * Each scoped block lists both a `src`-anchored pattern (for linting from a
 * module package root) and a recursive-glob-anchored pattern (for when the
 * package is nested, e.g. linted from a monorepo root).
 *
 * No rule in this preset needs type information, so the parser is configured
 * without `parserOptions.project` — the preset is zero-config.
 */
export declare function buildModules(plugin: unknown): Linter.Config[];
//# sourceMappingURL=modules.d.ts.map