import { LitElement } from 'lit'; import { ValidationMessages } from '../../../shared/face-mixin'; export type SelectionType = 'radio' | 'checkbox'; export type SelectionCardGroupTheme = 'success' | 'info' | 'error' | 'warning' | 'monochrome' | ''; export interface SelectionChangeEventDetail { /** The value of the card that triggered the change */ value: string; /** Whether the card is now selected */ checked: boolean; /** All currently selected values */ selectedValues: string[]; } export type SelectionChangeEvent = CustomEvent; export interface SelectionCardGroupProps { /** Selection mode: 'radio' (single) or 'checkbox' (multiple) */ type: SelectionType; /** Name attribute for the input elements */ name: string; /** Legend text for the fieldset (accessibility) */ legend?: string; /** Visually hide the legend while keeping it accessible */ legendHidden?: boolean; /** Theme variant for cards */ theme?: SelectionCardGroupTheme; /** Controlled value for radio mode */ value?: string; /** Controlled values for checkbox mode */ values?: string[]; /** Disable all cards in the group */ disabled?: boolean; /** Require at least one selection before the form can be submitted */ required?: boolean; validationMessages?: ValidationMessages; /** Callback for selection changes */ onSelectionChange?: (event: SelectionChangeEvent) => void; } declare const AgSelectionCardGroup_base: (new (...args: any[]) => import('../../../shared/face-mixin').FaceMixinInterface) & typeof LitElement; export declare class AgSelectionCardGroup extends AgSelectionCardGroup_base implements SelectionCardGroupProps { static styles: import('lit').CSSResult; type: SelectionType; legend: string; legendHidden: boolean; theme: SelectionCardGroupTheme; value: string; values: string[]; disabled: boolean; required: boolean; validationMessages: ValidationMessages | undefined; onSelectionChange: ((event: SelectionChangeEvent) => void) | undefined; _internalSelectedValues: string[]; constructor(); private _getSelectedValues; private _syncFormValue; private _syncValidity; formResetCallback(): void; /** * FACE lifecycle: called on session restore or browser autofill. * Restores selected value(s) from the previously saved form state. * Radio mode: state is a single string. Checkbox mode: state is FormData. */ formStateRestoreCallback(state: File | string | FormData | null, _mode: 'restore' | 'autocomplete'): void; /** * Sync CustomStateSet states so :state() pseudo-classes work from external CSS. * * Must be called AFTER _syncValidity() so that :state(invalid) reads the * freshly-updated _internals.validity.valid value. * * Exposed states: * :state(disabled) — group is disabled * :state(required) — group is required * :state(invalid) — FACE constraint validation is failing */ private _syncStates; connectedCallback(): void; disconnectedCallback(): void; updated(changedProperties: Map): void; firstUpdated(): void; private _getCards; private _syncChildCards; private _handleCardChange; private _handleKeyDown; private _handleSlotChange; render(): import('lit').TemplateResult<1>; } export {}; //# sourceMappingURL=_SelectionCardGroup.d.ts.map