import { MessageDataModelError } from '../errors.ts'; import type { Message, Node } from './types.ts'; /** * Ensure that the `msg` data model is _valid_, calling `onError` on errors. * If `onError` is not defined, a {@link MessageDataModelError} will be thrown on error. * * Detects the following errors: * * - `'key-mismatch'`: **Variant Key Mismatch**
* The number of keys on a _variant_ does not equal the number of _selectors_. * * - `'missing-fallback'`: **Missing Fallback Variant**
* The message does not include a _variant_ with only catch-all keys. * * - `'missing-selector-annotation'`: **Missing Selector Annotation**
* A _selector_ does not contains a _variable_ that directly or indirectly * reference a _declaration_ with a _function_. * * - `'duplicate-declaration'`: **Duplicate Declaration**
* A _variable_ appears in two _declarations_. * * - `'duplicate-variant'`: **Duplicate Variant**
* The same list of _keys_ is used for more than one _variant_. * * @category Message Data Model * @returns The sets of runtime `functions` and `variables` used by the message. */ export declare function validate(msg: Message, onError?: (type: MessageDataModelError['type'], node: Node) => void): { functions: Set; variables: Set; };