import { type Branded } from '../../private/type-brand'; export interface ValidationId { readonly namespace?: ValidationNs; readonly ruleId: string; } /** * Parse a validation ID into a namespace and rule name. * * `::` is used to separate the namespace from the rule name. If no namespace is provided, the `annotation` namespace is assumed. * * The rule name may not contain `::`, except between brackets. * * Right now, this parses and validates balanced brackets, because we assume the * people who invent identifiers are not maniacs. If it turns out this causes * too many problems, we can remove matching bracket validation and just check * for whether any brackets are open, not necessarily whether they match. */ export declare function parseValidationId(id: string): ValidationId; /** * Normalize the given validation ID to a fully qualified ID, using the `annotation` namespace if no namespace is provided. */ export declare function normalizeValidationId(id: string | ValidationId, defaultNamespace: ValidationNs): string; /** * Normalize the given validation ID to a fully qualified ID, using the `Annotation` namespace if no namespace is provided. */ export declare function normalizeValidationIdForAnnotations(id: string | ValidationId): string; export type ValidationNs = Branded; /** * Convert a plugin name to a namespace for validation IDs. */ export declare function namespaceFromPluginName(pluginName: string): ValidationNs; /** * Convert a namespace to a displayable plugin name */ export declare function pluginNameFromNamespace(namespace: ValidationNs): string; export declare const ANNOTATION_PLUGIN_NAME = "Construct Annotations"; export declare const ANNOTATION_PLUGIN_NAMESPACE: ValidationNs;