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 `<nile-checkbox>` 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 `<form>` 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;
    }
}
