/**
 * TyButton Web Component
 * PORTED FROM: clj/ty/components/button.cljs
 * Maintains full compatibility with ClojureScript version
 */
import type { Flavor, Size, TyButtonElement } from '../types/common.js';
/**
 * Ty Button Component
 *
 * @example
 * ```html
 * <ty-button flavor="primary" size="md">Click Me</ty-button>
 * <ty-button flavor="danger" outlined disabled>Disabled</ty-button>
 * <ty-button flavor="success" pill>Pill Button</ty-button>
 * ```
 */
export declare class TyButton extends HTMLElement implements TyButtonElement {
    static formAssociated: boolean;
    private _internals;
    private _flavor;
    private _size;
    private _disabled;
    private _type;
    private _pill;
    private _outlined;
    private _filled;
    private _accent;
    private _plain;
    private _action;
    private _wide;
    constructor();
    static get observedAttributes(): string[];
    attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null): void;
    private validateFlavor;
    get flavor(): Flavor;
    set flavor(value: Flavor);
    get size(): Size;
    set size(value: Size);
    get disabled(): boolean;
    set disabled(value: boolean);
    get type(): 'button' | 'submit' | 'reset';
    set type(value: 'button' | 'submit' | 'reset');
    get pill(): boolean;
    set pill(value: boolean);
    get outlined(): boolean;
    set outlined(value: boolean);
    get filled(): boolean;
    set filled(value: boolean);
    get accent(): boolean;
    set accent(value: boolean);
    get plain(): boolean;
    set plain(value: boolean);
    get action(): boolean;
    set action(value: boolean);
    get wide(): boolean;
    set wide(value: boolean);
    get form(): HTMLFormElement | null;
    get name(): string;
    get value(): string;
    private buildClasses;
    private handleFormAction;
    /** Initialize button structure once in constructor */
    private initializeButtonStructure;
    private render;
}
//# sourceMappingURL=button.d.ts.map