import { FoundationElement } from '@ni/fast-foundation';
import { ListOption } from '../list-option';
declare global {
    interface HTMLElementTagNameMap {
        'nimble-list-option-group': ListOptionGroup;
    }
}
/**
 * A nimble-styled HTML listbox option group
 */
export declare class ListOptionGroup extends FoundationElement {
    /**
     * The label for the group.
     *
     * @public
     * @remarks
     * If a label is also provided via slotted content, the label attribute
     * will have precedence.
     */
    label?: string;
    /**
     * The hidden state of the element.
     *
     * @public
     * @defaultValue - false
     * @remarks
     * HTML Attribute: hidden
     */
    hidden: boolean;
    /**
     * @internal
     * This attribute is required to allow use-cases that offer dynamic filtering
     * (like the Select) to visually hide groups that are filtered out, but still
     * allow users to use the native 'hidden' attribute without it being affected
     * by the filtering process.
     */
    visuallyHidden: boolean;
    /**
     * @internal
     */
    topSeparatorVisible: boolean;
    /**
     * @internal
     */
    bottomSeparatorVisible: boolean;
    /** @internal */
    hasOverflow: boolean;
    /** @internal */
    labelSlot: HTMLSlotElement;
    /** @internal */
    listOptions: ListOption[];
    /** @internal */
    get labelContent(): string;
    private readonly hiddenOptions;
    /**
     * @internal
     */
    clickHandler(e: MouseEvent): void;
    /**
     * @internal
     */
    handleChange(source: unknown, propertyName: string): void;
    private listOptionsChanged;
}
export declare const listOptionGroupTag = "nimble-list-option-group";
