/**
 * TyTag Web Component
 * PORTED FROM: clj/ty/components/tag.cljs
 * Tag component with slots and semantic flavors
 */
import type { Flavor, Size, TyTagElement } from '../types/common.js';
/**
 * Ty Tag Component
 *
 * @example
 * ```html
 * <ty-tag flavor="primary">Primary Tag</ty-tag>
 * <ty-tag flavor="success" dismissible>Success Tag</ty-tag>
 * <ty-tag flavor="danger" clickable>Clickable Tag</ty-tag>
 * <ty-tag value="tag-1" selected>Selected Tag</ty-tag>
 * ```
 */
export declare class TyTag extends HTMLElement implements TyTagElement {
    private _flavor;
    private _size;
    private _value;
    private _selected;
    private _pill;
    private _clickable;
    private _dismissible;
    private _disabled;
    private _cleanup;
    constructor();
    static get observedAttributes(): string[];
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
    /**
     * Validate flavor (matches ClojureScript validation)
     */
    private validateFlavor;
    get flavor(): Flavor;
    set flavor(value: Flavor);
    get size(): Size;
    set size(value: Size);
    get value(): string | undefined;
    set value(val: string | undefined);
    get selected(): boolean;
    set selected(value: boolean);
    get pill(): boolean;
    set pill(value: boolean);
    get clickable(): boolean;
    set clickable(value: boolean);
    get dismissible(): boolean;
    set dismissible(value: boolean);
    get disabled(): boolean;
    set disabled(value: boolean);
    /**
     * Dispatch custom tag events
     */
    private dispatchTagEvent;
    /**
     * Handle tag click events
     */
    private handleClick;
    /**
     * Handle tag dismiss events
     */
    private handleDismiss;
    /**
     * Handle keyboard interactions
     */
    private handleKeydown;
    /**
     * Clean up existing event listeners
     */
    private cleanupEventListeners;
    /**
     * Setup event listeners for tag interactions
     */
    private setupEventListeners;
    /**
     * Render the tag component
     */
    private render;
}
//# sourceMappingURL=tag.d.ts.map