/**
 * Ty Component Common Types
 */
/** Semantic color flavors used throughout Ty components */
export type Flavor = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'neutral';
/** Component size variants */
export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
/** Input types supported by ty-input */
export type InputType = 'text' | 'password' | 'email' | 'url' | 'tel' | 'date' | 'time' | 'datetime-local' | 'number' | 'currency' | 'percent' | 'compact' | 'checkbox';
/** Base properties shared by all Ty components */
export interface TyBaseElement extends HTMLElement {
    /** Semantic color flavor */
    flavor?: Flavor;
}
/** Button component interface */
export interface TyButtonElement extends TyBaseElement {
    /** Button size */
    size?: Size;
    /** Disabled state */
    disabled?: boolean;
    /** Pill shape (fully rounded) */
    pill?: boolean;
    /** Outlined appearance */
    outlined?: boolean;
    /** Filled appearance */
    filled?: boolean;
    /** Accent appearance (default) */
    accent?: boolean;
    /** Plain appearance (no background) */
    plain?: boolean;
    /** Button type for forms */
    type?: 'button' | 'submit' | 'reset';
}
/** CSS style content */
/** Icon size variants */
export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '12' | '14' | '16' | '18' | '20' | '24' | '32' | '48' | '64' | '80' | '96';
/** Icon animation tempo */
export type IconTempo = 'slow' | 'fast';
/** Icon component interface */
export interface TyIconElement extends HTMLElement {
    /** Icon name to display */
    name?: string;
    /** Icon size */
    size?: IconSize;
    /** Spin animation */
    spin?: boolean;
    /** Pulse animation */
    pulse?: boolean;
    /** Animation tempo */
    tempo?: IconTempo;
}
/** Tag component custom event detail */
export interface TyTagEventDetail {
    /** Target tag element */
    target: HTMLElement;
}
/** Tag component interface */
export interface TyTagElement extends TyBaseElement {
    /** Tag value */
    value?: string;
    /** Tag size */
    size?: Size;
    /** Selected state */
    selected?: boolean;
    /** Pill shape (fully rounded) - default true */
    pill?: boolean;
    /** Clickable state */
    clickable?: boolean;
    /** Dismissible state */
    dismissible?: boolean;
    /** Disabled state */
    disabled?: boolean;
}
/** Option component interface - omit 'hidden' from HTMLElement to avoid conflict */
export interface TyOptionElement extends Omit<HTMLElement, 'hidden'> {
    /** Option value */
    value?: string;
    /** Selected state */
    selected?: boolean;
    /** Disabled state */
    disabled?: boolean;
    /** Highlighted state (keyboard navigation) */
    highlighted?: boolean;
    /** Hidden state - overrides HTMLElement's hidden */
    hidden?: boolean;
}
/** Input component interface */
export interface TyInputElement extends TyBaseElement {
    /** Input type */
    type?: InputType;
    /** Input value */
    value?: string;
    /** Input name (for forms) */
    name?: string;
    /** Placeholder text */
    placeholder?: string;
    /** Label text */
    label?: string;
    /** Disabled state */
    disabled?: boolean;
    /** Required field */
    required?: boolean;
    /** Error message */
    error?: string;
    /** Input size */
    size?: Size;
    /** Associated form */
    readonly form?: HTMLFormElement | null;
    /** Currency code for currency type (e.g., 'USD', 'EUR', 'HRK') */
    currency?: string;
    /** Locale for formatting (e.g., 'en-US', 'hr-HR') */
    locale?: string;
    /** Number of decimal places */
    precision?: number | string;
    /** Delay in milliseconds before firing input/change events (0-5000ms) */
    delay?: number | string;
}
/** CSS style content */
export interface StyleContent {
    /** CSS text content */
    css: string;
    /** Optional style ID for caching */
    id?: string;
}
//# sourceMappingURL=common.d.ts.map