import type { IElementRef, OnCreate, OnDestroy } from '@melodicdev/core';
import type { Size } from '../../../types/index.js';
/**
 * ml-button-group - A group of connected toggle buttons
 *
 * @example Single selection:
 * ```html
 * <ml-button-group value="list">
 *   <ml-button-group-item value="list" icon="list">List</ml-button-group-item>
 *   <ml-button-group-item value="grid" icon="grid-four">Grid</ml-button-group-item>
 * </ml-button-group>
 * ```
 *
 * @example Multiple selection:
 * ```html
 * <ml-button-group multiple>
 *   <ml-button-group-item value="bold" icon="text-bolder"></ml-button-group-item>
 *   <ml-button-group-item value="italic" icon="text-italic"></ml-button-group-item>
 *   <ml-button-group-item value="underline" icon="text-underline"></ml-button-group-item>
 * </ml-button-group>
 * ```
 *
 * @fires ml:change - Emitted when selection changes. Detail: { value: string } or { values: string[] }
 */
export declare class ButtonGroupComponent implements IElementRef, OnCreate, OnDestroy {
    elementRef: HTMLElement;
    /** Currently selected value (single selection mode) */
    value: string;
    /** Active state style: 'outline' (gray) or 'solid' (primary color) */
    variant: 'outline' | 'solid';
    /** Size variant */
    size: Size;
    /** Disable the entire group */
    disabled: boolean;
    /** Allow multiple selections */
    multiple: boolean;
    /** Selected values (multiple mode) */
    values: string[];
    onCreate(): void;
    onDestroy(): void;
    /** Handle slot changes to sync initial state */
    handleSlotChange: () => void;
    private readonly _handleItemClick;
    private syncItems;
}
//# sourceMappingURL=button-group.component.d.ts.map