import NileElement from '../internal/nile-element'; import type { CSSResultGroup, PropertyValues } from 'lit'; /** * @summary Checkbox groups manage multiple [checkboxes](/components/checkbox) so they function as a multi-select form control. * Supports two association modes: slotted children or property-based remote association via `for`/`group`. * * @slot - The default slot where `` elements are placed (slotted mode). * @slot label - The checkbox group's label. Required for proper accessibility. Alternatively, use the `label` attribute. * * @event change - Emitted when the checkbox group's selected values change. * @event input - Emitted when the checkbox group receives user input. * * @csspart form-control - The fieldset wrapper. * @csspart form-control-label - The group label. * @csspart form-control-input - The wrapper around the checkbox options. * @csspart options-base - The container for the checkbox options. */ export declare class NileCheckboxGroup extends NileElement { static styles: CSSResultGroup; private readonly hasSlotController; private boundDocumentListener; defaultSlot: HTMLSlotElement; defaultValue: string[]; /** The checkbox group's label. Required for proper accessibility. */ label: string; /** The name of the checkbox group, submitted as a name/value pair with form data. */ name: string; /** The current selected values, as an array of checkbox value strings. */ value: string[]; /** * Group name for property-based association. When set, the group discovers * checkboxes anywhere in the DOM that have a matching `group` attribute * instead of relying on slotted children. */ for: string; /** * Associates the group with a `
` element by its `id`. The form must * be in the same document or shadow root. */ form: string; /** At least one checkbox must be checked before the form can submit. */ required: boolean; /** Layout direction of the checkboxes. */ orientation: 'vertical' | 'horizontal'; /** Display checkboxes in an inline (horizontal) layout. Alias for orientation="horizontal". */ labelInline: boolean; /** Disables all associated checkboxes. */ disabled: boolean; helpText: string; errorMessage: string; /** Maximum number of checkboxes that can be checked. Unchecked boxes are disabled when the limit is reached. */ max: number | undefined; /** Minimum selections required for validation. */ min: number | undefined; /** Shows a visible border around the fieldset wrapper. */ bordered: boolean; /** Legend text displayed at the top of the fieldset when bordered is enabled. */ legend: string; private get isHorizontal(); connectedCallback(): void; disconnectedCallback(): void; private setupDocumentListener; private teardownDocumentListener; handleForChange(): void; private getAllCheckboxes; private handleCheckboxClick; private handleChildInput; private handleCheckboxChange; private enforceMaxDisabled; protected updated(changedProperties: PropertyValues): void; handleDisabledChange(): void; private handleInitialDisabledState; private handleLabelClick; private handleSlotChange; private syncCheckboxStates; handleValueChange(): void; render(): import("lit-html").TemplateResult<1>; } export default NileCheckboxGroup; declare global { interface HTMLElementTagNameMap { 'nile-checkbox-group': NileCheckboxGroup; } }