import { ButtonConfig, ButtonVariant } from './types';
export type { ButtonConfig, ButtonVariant, ButtonSize, ButtonGroupConfig } from './types';
export { ButtonGroup } from './button-group';
export declare class Button {
    readonly el: HTMLButtonElement;
    private labelEl;
    private iconEl;
    private spinnerEl;
    private loadingTextEl;
    private readonly btnId;
    private currentVariant;
    private currentSize;
    private isLoading;
    private readonly clickHandler;
    constructor(config: ButtonConfig);
    /** Update the button label text */
    setLabel(label: string): void;
    /** Toggle the disabled state */
    setDisabled(disabled: boolean): void;
    /** Toggle the loading spinner */
    setLoading(loading: boolean): void;
    /** Change the button variant */
    setVariant(variant: ButtonVariant): void;
    /** Remove the button from the DOM and clean up event listeners */
    destroy(): void;
    private buildClassName;
    private buildContent;
    private applyLoadingState;
    private removeLoadingState;
}
//# sourceMappingURL=index.d.ts.map