/** * Aria attributes whose value is a space separated list of element ids. * * A component's `*AriaAttribute` union must only list attributes that the component composes * internally and merges via `mergeAriaIds`. Listing an attribute that is never read makes the * consumer value disappear silently, and `warnOnNativeAriaAttribute` does not catch that. * Attributes a component does not own already work natively via `...rest`. */ type AriaIdListAttribute = 'aria-describedby' | 'aria-labelledby'; /** * Merges multiple id list values into a single space separated list, for aria attributes * like `aria-describedby` and `aria-labelledby`. * * Accepts already space separated id lists as well as conditional expressions * (e.g. `invalid && systemFeedback && systemFeedbackId`). * Falsy values are ignored and duplicate ids are removed while keeping the original order, * so internally generated ids can be combined with consumer provided ids. * * @param values - The id list values to merge. * @returns The merged value, or `undefined` if no id remains so the attribute gets omitted. */ export declare const mergeAriaIds: (...values: (string | false | null | undefined)[]) => string | undefined; /** * Warns when a native aria attribute is set on a component that owns that attribute * internally. Such attributes are inherited from the underlying HTML element, so they are * valid TypeScript but get dropped silently without this warning. * * Intended for development use only; should not be used in production environments. * * @param componentName - The name of the component the attribute was set on. * @param attribute - The name of the native aria attribute. * @param value - The value of the native aria attribute. */ export declare const warnOnNativeAriaAttribute: (componentName: string, attribute: AriaIdListAttribute, value: string | undefined) => void; export {};