import { LitElement, type PropertyValues } from 'lit';
import UiButtonElement from './button.js';
import type { MdButtonSize } from './button.js';
export type MdGroupType = 'standard' | 'connected';
/**
 * A group of buttons that can be selected.
 *
 * When a group of buttons is added to the group element, the group element
 * becomes the manager of the buttons type, size, and selection state.
 *
 * All buttons added to the group will inherit the size from the group, but also the `shape` is set
 * based on the group type.
 *
 * Buttons don't need to be have the `toggle` attribute set. In such case, the button
 * will not participate in the selection state management.
 */
export default class ButtonGroup extends LitElement {
    /**
     * If true, multiple buttons can be selected.
     * When set to false, the group deselects all other buttons when one is selected.
     * @attribute
     */
    accessor multiple: boolean;
    /**
     * The type of button group.
     * - 'standard': Standard button group.
     * - 'connected': Connected button group (buttons are visually connected).
     * @attribute
     */
    accessor type: MdGroupType;
    /**
     * The size of the buttons used with this group.
     * @attribute
     */
    accessor size: MdButtonSize;
    private accessor buttons;
    /**
     * The MutationObserver instance used to watch for changes in slotted children.
     */
    protected observer?: MutationObserver;
    connectedCallback(): void;
    disconnectedCallback(): void;
    protected firstUpdated(changed: PropertyValues): void;
    protected willUpdate(changed: PropertyValues<this>): void;
    protected handleMutations(mutations: MutationRecord[]): void;
    protected updateChildren(): void;
    /**
     * In multi selection mode, this method does nothing.
     * In single selection mode, it activates the clicked button and deactivates all others.
     */
    activate(button: UiButtonElement): void;
    render(): import("lit-html").TemplateResult<1>;
}
//# sourceMappingURL=group.d.ts.map