import type { MjoButtonBlurEvent, MjoButtonClickEvent, MjoButtonColor, MjoButtonFocusEvent, MjoButtonLoadingChangeEvent, MjoButtonSize, MjoButtonToggleEvent, MjoButtonType, MjoButtonVariant } from "./types/mjo-button"; import { LitElement, PropertyValues } from "lit"; import { type IFormMixin } from "./mixins/form-mixin.js"; import { type IThemeMixin } from "./mixins/theme-mixin.js"; import "./mjo-icon.js"; import "./mjo-ripple.js"; import "./mjo-typography.js"; declare const MjoButton_base: import("./types/mixins").MixinConstructor & import("./types/mixins").MixinConstructor & typeof LitElement; /** * @summary Fully accessible button component with multiple variants, interactive states, and comprehensive ARIA support. * * @description The mjo-button component provides a complete button solution with multiple visual variants, * semantic colors, loading states, toggle functionality, and comprehensive accessibility features. * It integrates seamlessly with forms and supports both global and per-instance theming. * * @fires mjo-button:click - Fired when the button is clicked * @fires mjo-button:toggle - Fired when toggle state changes (only when toggleable=true) * @fires mjo-button:loading-change - Fired when loading state changes * * @slot - Button text content * @csspart button - The native button element * @csspart start-icon - The start icon element * @csspart end-icon - The end icon element * @csspart text - The typography wrapper around the button text * @csspart loading - The loading indicator element (visible when `loading` is true) */ export declare class MjoButton extends MjoButton_base implements IThemeMixin, IFormMixin { #private; fullwidth: boolean; disabled: boolean; loading: boolean; rounded: boolean; toggleable: boolean; smallCaps: boolean; noink: boolean; startIcon?: string; endIcon?: string; size: MjoButtonSize; color: MjoButtonColor; variant: MjoButtonVariant; type: MjoButtonType; buttonLabel?: string; describedBy?: string; private toggle; render(): import("lit-html").TemplateResult<1>; protected willUpdate(_changedProperties: PropertyValues): void; protected updated(_changedProperties: Map): void; /** * Sets focus to the button */ focus(options?: FocusOptions): void; /** * Removes focus from the button */ blur(): void; /** * Simulates a click on the button */ click(): void; /** * Sets the button as busy/loading */ setLoading(loading: boolean): void; /** * Toggles the button pressed state (only works if toggleable is true) */ togglePressed(): void; static styles: import("lit").CSSResult[]; } declare global { interface HTMLElementTagNameMap { "mjo-button": MjoButton; } interface HTMLElementEventMap { "mjo-button:click": MjoButtonClickEvent; "mjo-button:toggle": MjoButtonToggleEvent; "mjo-button:loading-change": MjoButtonLoadingChangeEvent; "mjo-button:focus": MjoButtonFocusEvent; "mjo-button:blur": MjoButtonBlurEvent; } } export {}; //# sourceMappingURL=mjo-button.d.ts.map