import { TemplateResult, nothing } from 'lit'; /** * Stable IDs for form control elements */ export interface FormControlIds { inputId: string; labelId: string; helperId: string; errorId: string; } /** * Generate stable IDs for form control elements * Call this once in the component constructor or as a class field * * @param prefix - Component prefix (e.g., 'ag-input') * @returns Object with inputId, labelId, helperId, errorId */ export declare function createFormControlIds(prefix: string): FormControlIds; /** * Build aria-describedby attribute value * Only includes IDs for elements that actually exist * * @param options - Configuration for which elements are present * @returns Space-separated ID string or undefined if no IDs */ export declare function buildAriaDescribedBy(options: { helperId: string; errorId: string; hasHelper: boolean; hasError: boolean; }): string | undefined; /** * Label position options for form controls * * Directional values that work for all form controls: * - 'top': Label above control (default for Input, Select, etc.) * - 'bottom': Label below control * - 'start': Label to the start of control (respects RTL, default for Checkbox/Radio/Toggle) * - 'end': Label to the end of control (respects RTL) */ export type LabelPosition = 'top' | 'end' | 'bottom' | 'start'; /** * Check if label position is horizontal (start or end) */ export declare function isHorizontalLabel(position: LabelPosition): boolean; /** * Check if label position is vertical (top or bottom) */ export declare function isVerticalLabel(position: LabelPosition): boolean; /** * Render a form control label * Uses native