/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement } from 'lit'; type Constructor = new (...args: any[]) => T; /** * Interface for checkbox change event detail */ export interface CheckboxChangeEventDetail { checked: boolean; value?: string; name?: string; indeterminate?: boolean; } /** * Interface for checkbox focus/blur event detail */ export interface CheckboxFocusEventDetail { originalEvent: FocusEvent; } /** * Interface for checkbox keyboard event detail */ export interface CheckboxKeyboardEventDetail { key: string; code: string; originalEvent: KeyboardEvent; } /** * Interface for checkbox mouse event detail */ export interface CheckboxMouseEventDetail { originalEvent: MouseEvent; } /** * Interface for components that support checkbox event handling */ export interface CheckboxEventCapable { /** * Handle checkbox change events * @param event - The change event */ handleChange(event: Event): void; /** * Handle checkbox focus events * @param event - The focus event */ handleFocus(event: FocusEvent): void; /** * Handle checkbox blur events * @param event - The blur event */ handleBlur(event: FocusEvent): void; /** * Handle checkbox keydown events * @param event - The keyboard event */ handleKeydown(event: KeyboardEvent): void; /** * Handle checkbox mouse enter events * @param event - The mouse event */ handleMouseEnter(event: MouseEvent): void; /** * Handle checkbox mouse leave events * @param event - The mouse event */ handleMouseLeave(event: MouseEvent): void; } /** * Mixin that provides event handling capabilities to checkbox components * * @param superClass - The base class to extend * @returns Enhanced class with checkbox event capabilities * * @example * ```typescript * export class MyCheckbox extends CheckboxEventMixin(LitElement) { * // Event handling is automatically provided * } * ``` */ export declare const CheckboxEventMixin: >(superClass: T) => Constructor & T; export {}; //# sourceMappingURL=checkbox-event-mixin.d.ts.map