/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { ReactiveControllerHost } from 'lit'; import { BaseValidationController } from '@nuralyui/common/controllers'; import { ValidationController } from '../interfaces/validation-controller.interface.js'; /** * Host interface for radio group validation */ interface RadioGroupValidationHost extends ReactiveControllerHost { required: boolean; value: string; name: string; requestUpdate(): void; dispatchEvent(event: Event): boolean; } /** * Controller that manages validation logic and form integration for radio groups * Implements HTML5 form validation patterns with custom validation support * * Features: * - Required field validation * - Custom validation message support * - Form integration with native validation API * - Real-time validation state tracking * * @example * ```typescript * const controller = new RadioValidationController(hostElement); * const isValid = controller.validate(); // Validate current state * console.log(controller.validationMessage); // Get validation error * ``` */ export declare class RadioValidationController extends BaseValidationController implements ValidationController { /** * Validates the current radio group state * Checks required field constraints and custom validation rules * * @returns True if validation passes, false otherwise * @fires invalid - When validation fails (for form integration) */ validate(): boolean; /** * Set a custom validation message */ setCustomValidity(message: string): void; /** * Get form data for form submission */ getFormData(): { [key: string]: string; }; /** * Report validation state (similar to native form elements) */ reportValidity(): boolean; /** * Form reset handler */ reset(): void; /** * Get FormData object for native form submission */ getFormDataObject(): FormData | null; /** * Validate on value change */ validateOnChange(): void; } export {}; //# sourceMappingURL=validation.controller.d.ts.map