type Constructor = new (...args: any[]) => T; interface AffixMixinBase { ariaDescribedby: string | null; id: string; } /** * Mixin that adds prefix/suffix affix support with screen-reader handling to an input field component. * Shared between TextField and NumberField to keep the behaviour consistent and avoid duplication. */ export declare function AffixMixin>(Base: TBase): { new (...args: any[]): { /** * Optional non-editable label shown on the left inside the field, before the input. */ prefix: string; /** * Optional non-editable suffix (e.g. unit label) shown on the right inside the field. */ suffix: string; /** * When true, prefix/suffix are not exposed to assistive technology (`aria-hidden` on affixes, * and their ids are omitted from the control's `aria-describedby`). * Use only when the unit or symbol is redundant with the visible label or other text. * @remarks * By default, affix text is **included** for screen readers: stable ids are assigned to the * affix nodes and referenced from the input's `aria-describedby` (merged with any author * `aria-describedby`), which announces them as supplementary description after the field name * from the label. * For cases where the affix should be part of the accessible **name** instead (e.g. currency * code read as part of the label), set `hide-affix-from-screen-reader` and wire * `aria-labelledby` on the host to reference the label slot and your own elements, or provide * a single `aria-label` that includes the full name. */ hideAffixFromScreenReader: boolean; /** * Merges the host `aria-describedby` with ids of the prefix/suffix nodes when those affixes * are exposed to screen readers. * @internal */ get controlAriaDescribedby(): string | undefined; ariaDescribedby: string | null; id: string; }; } & TBase; export {}; //# sourceMappingURL=affix-mixin.d.ts.map