import { CSSResultGroup, LitElement, PropertyValues } from "lit";
import { M3eButtonElement } from "@m3e/web/button";
import { M3eIconButtonElement } from "@m3e/web/icon-button";
import { ButtonGroupVariant } from "./ButtonGroupVariant";
import { ButtonGroupSize } from "./ButtonGroupSize";
declare const M3eButtonGroupElement_base: import("../core/shared/mixins/Constructor").Constructor & typeof LitElement;
/**
* Organizes buttons and adds interactions between them.
*
* @description
* The `m3e-button-group` component arranges multiple buttons into a unified, expressive layout,
* supporting both `standard` and `connected` variants. It enables seamless, accessible grouping
* of actions, adapts to various sizes, and ensures consistent spacing, shape, and alignment.
* Designed according to Material 3 principles, it empowers users to interact with related actions
* in a visually harmonious and intuitive way.
*
* @example
* The following example illustrates a standard button group.
* ``` html
*
*
*
*
*
* ```
* @example
* The next example illustrates a connected button group.
* ```html
*
* Start
* Directions
* Share
*
* ```
*
* @tag m3e-button-group
*
* @slot - Renders the buttons of the group.
*
* @attr multi - Whether multiple toggle buttons can be selected.
* @attr size - The size of the group.
* @attr variant - The appearance variant of the group.
*
* @cssprop --m3e-standard-button-group-extra-small-spacing - Spacing between buttons in standard variant, extra-small size.
* @cssprop --m3e-standard-button-group-small-spacing - Spacing between buttons in standard variant, small size.
* @cssprop --m3e-standard-button-group-medium-spacing - Spacing between buttons in standard variant, medium size.
* @cssprop --m3e-standard-button-group-large-spacing - Spacing between buttons in standard variant, large size.
* @cssprop --m3e-standard-button-group-extra-large-spacing - Spacing between buttons in standard variant, extra-large size.
* @cssprop --m3e-connected-button-group-spacing - Spacing between buttons in connected variant.
* @cssprop --m3e-connected-button-group-extra-small-inner-shape - Corner shape for connected variant, extra-small size.
* @cssprop --m3e-connected-button-group-extra-small-inner-pressed-shape - Pressed corner shape for connected variant, extra-small size.
* @cssprop --m3e-connected-button-group-small-inner-shape - Corner shape for connected variant, small size.
* @cssprop --m3e-connected-button-group-small-inner-pressed-shape - Pressed corner shape for connected variant, small size.
* @cssprop --m3e-connected-button-group-medium-inner-shape - Corner shape for connected variant, medium size.
* @cssprop --m3e-connected-button-group-medium-inner-pressed-shape - Pressed corner shape for connected variant, medium size.
* @cssprop --m3e-connected-button-group-large-inner-shape - Corner shape for connected variant, large size.
* @cssprop --m3e-connected-button-group-large-inner-pressed-shape - Pressed corner shape for connected variant, large size.
* @cssprop --m3e-connected-button-group-extra-large-inner-shape - Corner shape for connected variant, extra-large size.
* @cssprop --m3e-connected-button-group-extra-large-inner-pressed-shape - Pressed corner shape for connected variant, extra-large size.
*/
export declare class M3eButtonGroupElement extends M3eButtonGroupElement_base {
#private;
/** The styles of the element. */
static styles: CSSResultGroup;
private readonly _base?;
/**
* The appearance variant of the group.
* @default "standard"
*/
variant: ButtonGroupVariant;
/**
* The size of the group.
* @default "small"
*/
size: ButtonGroupSize;
/**
* Whether multiple toggle buttons can be selected.
* @default false
*/
multi: boolean;
/** The buttons contained by the group. */
readonly buttons: ReadonlyArray;
/** @inheritdoc */
connectedCallback(): void;
/** @inheritdoc */
disconnectedCallback(): void;
/** @inheritdoc */
protected update(changedProperties: PropertyValues): void;
/** @inheritdoc */
protected render(): unknown;
}
declare global {
interface HTMLElementTagNameMap {
"m3e-button-group": M3eButtonGroupElement;
}
}
export {};
//# sourceMappingURL=ButtonGroupElement.d.ts.map