/**
 * @fileoverview Lint rules for definition names: non-empty, format, uniqueness.
 * Covers MCP spec rules T1, T8-T12, R2, P1.
 * @module src/linter/rules/name-rules
 */
import type { LintDiagnostic } from '../types.js';
/**
 * Validates that a definition name is non-empty.
 * Spec: T1, R2, P1 — name is REQUIRED.
 */
export declare function checkNameRequired(name: unknown, definitionType: LintDiagnostic['definitionType'], definitionName: string): LintDiagnostic | null;
/**
 * Validates tool name format against MCP spec (T8-T10).
 * Only applies to tools — resources and prompts have no specified format.
 */
export declare function checkToolNameFormat(name: string): LintDiagnostic | null;
/**
 * Checks for duplicate names within a set of definitions.
 * Spec: T11 — names SHOULD be unique within a server.
 */
export declare function checkDuplicateNames(names: string[], definitionType: LintDiagnostic['definitionType']): LintDiagnostic[];
//# sourceMappingURL=name-rules.d.ts.map