import { Server } from "@modelcontextprotocol/sdk/server/index.js"; /** * @param ruleCount この bundle のルール件数 * @param serverName 説明文に埋める DS 名。既定は起動時の SERVER_NAME。 * ハードコードすると第三者 bundle の tool 説明にまで melta の名前が残り、 * 「データは差し替わったが公開面は melta のまま」になる */ export declare function toolDefinitions(ruleCount: number, serverName?: string): readonly [{ readonly name: "get_token"; readonly description: "Get a design token by dot-path. Returns the token object with its value and class mapping."; readonly inputSchema: { readonly type: "object"; readonly properties: { readonly path: { readonly type: "string"; readonly description: "Dot-separated path to the token (e.g. \"color.primary.600\", \"spacing.4\", \"radius.lg\", \"typography.fontSize.base\")"; }; }; readonly required: readonly ["path"]; }; }, { readonly name: "get_component"; readonly description: "Get component metadata including variants, sizes, accessibility requirements, HTML sample, per-state specs (stateSpecs: disabled/loading/open/empty etc. — each with delta class strings + aria changes), and anatomy parts (overlay/container/th etc. with element/roles/class). Prefer these structured fields over inferring states from the HTML sample."; readonly inputSchema: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; readonly description: "Component ID (e.g. \"button\", \"card\", \"table\", \"sidebar\")"; }; }; readonly required: readonly ["id"]; }; }, { readonly name: "check_rule"; readonly description: "Check class strings against this design system's prohibition rules. Returns violations with reasons and alternatives."; readonly inputSchema: { readonly type: "object"; readonly properties: { readonly classes: { readonly type: "string"; readonly description: "Space-separated class string to check (e.g. \"text-black shadow-2xl bg-green-500\")"; }; }; readonly required: readonly ["classes"]; }; }, { readonly name: "check_html"; readonly description: `Lint a full HTML/JSX source against ${string} rules \u2014 the same checks as CI and the PostToolUse hook (class rules + html-attr rules + composition rules for HTML). Use this AFTER generating UI code to self-verify before presenting it. Response always includes coverage info (manual rules cannot be auto-checked).`; readonly inputSchema: { readonly type: "object"; readonly properties: { readonly source: { readonly type: "string"; readonly description: "Full source code to lint (HTML / JSX / Vue template)"; }; readonly sourceType: { readonly type: "string"; readonly enum: readonly ["html", "jsx"]; readonly description: "Source type. \"html\" (default) also runs composition lint (nested modal etc.); \"jsx\" runs class + attr lint only"; }; }; readonly required: readonly ["source"]; }; }, { readonly name: "search"; readonly description: "Search across tokens and components by keyword. Matches against names, values, class strings, and descriptions. Returns up to 20 results (truncated flag when more matched)."; readonly inputSchema: { readonly type: "object"; readonly properties: { readonly query: { readonly type: "string"; readonly description: "Search keyword (e.g. \"card\", \"primary\", \"shadow\")"; }; }; readonly required: readonly ["query"]; }; }, { readonly name: "get_rules"; readonly description: `Get ${string} prohibition rules from rules.json (${number} total). Use this to retrieve manual/contextual rules that check_rule cannot auto-detect. Supports filtering by category, severity, or detector.`; readonly inputSchema: { readonly type: "object"; readonly properties: { readonly category: { readonly type: "string"; readonly description: "Filter by category (e.g. \"color\", \"spacing\", \"accessibility\", \"button\", \"modal\")"; }; readonly severity: { readonly type: "string"; readonly enum: readonly ["error", "warn"]; readonly description: "Filter by severity"; }; readonly detector: { readonly type: "string"; readonly enum: readonly ("tailwind-class" | "tailwind-class-prefix" | "tailwind-class-segment" | "html-attr" | "composition" | "manual")[]; readonly description: "Filter by detector type"; }; }; }; }]; export declare function createServer(): Server; export declare function startServer(): Promise;