/**
 * @fileoverview Type definitions for Glassmorphic Theme
 * Defines the complete theme structure and interfaces
 */
export interface EnhancedColorScale {
    50: string;
    100: string;
    200: string;
    300: string;
    400: string;
    500: string;
    600: string;
    700: string;
    800: string;
    900: string;
    A100: string;
    A200: string;
    A400: string;
    A700: string;
    main: string;
    light: string;
    dark: string;
    contrastText: string;
}
export interface ColorPalette {
    primary: EnhancedColorScale;
    secondary: EnhancedColorScale;
    tertiary?: EnhancedColorScale;
    background: {
        default: string;
        paper: string;
        glass: string;
        primary: string;
        secondary: string;
        tertiary: string;
        hover: string;
        active: string;
        disabled: string;
    };
    surface: {
        primary: string;
        secondary: string;
        tertiary: string;
    };
    text: {
        primary: string;
        secondary: string;
        disabled: string;
        hint: string;
        placeholder: string;
    };
    error: EnhancedColorScale;
    warning: EnhancedColorScale;
    info: EnhancedColorScale;
    success: EnhancedColorScale;
    divider: string;
    action: {
        active: string;
        hover: string;
        selected: string;
        disabled: string;
        disabledBackground: string;
    };
    border: {
        primary: string;
        secondary: string;
        glass: string;
        hover: string;
        default: string;
        light: string;
    };
}
export interface Typography {
    fontFamily: {
        primary: string;
        secondary: string;
        mono: string;
    };
    fontSize: {
        xs: string;
        sm: string;
        base: string;
        md: string;
        lg: string;
        xl: string;
        '2xl': string;
        '3xl': string;
        '4xl': string;
        '5xl': string;
    };
    fontWeight: {
        light: number;
        normal: number;
        medium: number;
        semibold: number;
        bold: number;
    };
    lineHeight: {
        tight: number;
        normal: number;
        relaxed: number;
    };
    letterSpacing: {
        tight: string;
        normal: string;
        wide: string;
    };
}
export interface GlassmorphismConfig {
    light: {
        backdropFilter: string;
        backgroundColor: string;
        border: string;
        boxShadow: string;
    };
    medium: {
        backdropFilter: string;
        backgroundColor: string;
        border: string;
        boxShadow: string;
    };
    heavy: {
        backdropFilter: string;
        backgroundColor: string;
        border: string;
        boxShadow: string;
    };
}
export interface Shadows {
    none: string;
    sm: string;
    base: string;
    md: string;
    lg: string;
    xl: string;
    '2xl': string;
    inner: string;
    glass: {
        light: string;
        medium: string;
        heavy: string;
    };
    0: string;
    1: string;
    2: string;
    3: string;
    4: string;
    5: string;
}
export interface BorderRadius {
    none: string;
    sm: string;
    base: string;
    md: string;
    lg: string;
    xl: string;
    '2xl': string;
    '3xl': string;
    full: string;
}
export interface Spacing {
    0: string;
    1: string;
    2: string;
    3: string;
    4: string;
    5: string;
    6: string;
    8: string;
    10: string;
    12: string;
    16: string;
    20: string;
    24: string;
    32: string;
    40: string;
    48: string;
    56: string;
    64: string;
    xs: string;
    sm: string;
    md: string;
    lg: string;
    xl: string;
    '2xl': string;
}
export interface Breakpoints {
    xs: string;
    sm: string;
    md: string;
    lg: string;
    xl: string;
    '2xl': string;
}
export interface ZIndex {
    hide: number;
    auto: string;
    base: number;
    docked: number;
    dropdown: number;
    sticky: number;
    banner: number;
    overlay: number;
    modal: number;
    popover: number;
    skipLink: number;
    toast: number;
    tooltip: number;
}
export interface Transitions {
    duration: {
        fastest: string;
        faster: string;
        fast: string;
        normal: string;
        slow: string;
        slower: string;
        slowest: string;
    };
    easing: {
        easeInOut: string;
        easeOut: string;
        easeIn: string;
        sharp: string;
    };
    property: {
        common: string;
        colors: string;
        dimensions: string;
        position: string;
        background: string;
        all: string;
    };
}
export interface Animation {
    duration: {
        fastest: number;
        faster: number;
        fast: number;
        normal: number;
        slow: number;
        slower: number;
        slowest: number;
    };
}
export interface Colors {
    primary: EnhancedColorScale;
    secondary: EnhancedColorScale;
    tertiary?: EnhancedColorScale;
    error: EnhancedColorScale;
    warning: EnhancedColorScale;
    info: EnhancedColorScale;
    success: EnhancedColorScale;
}
export interface GradientSystem {
    backgrounds: {
        primary: any;
        secondary: any;
        accent: any;
        neutral: any;
        hero: any;
        subtle: any;
    };
    overlays: {
        glass: any;
        shadow: any;
        highlight: any;
        backdrop: any;
    };
    borders: {
        primary: any;
        secondary: any;
        accent: any;
        glass: any;
    };
    animations: {
        flowing: any;
        pulsing: any;
        shifting: any;
        shimmer: any;
    };
    themeTransitions: {
        duration: string;
        easing: string;
        properties: string[];
    };
}
export type { GradientConfig, ThemeGradient, GradientStop } from '../theme/gradientSystem';
export interface GlassmorphicTheme {
    mode: 'light' | 'dark';
    palette: ColorPalette;
    semanticColors: SemanticColors;
    typography: Typography;
    glassmorphism: GlassmorphismConfig;
    gradients: GradientSystem;
    shadows: Shadows;
    borderRadius: BorderRadius;
    spacing: Spacing;
    breakpoints: Breakpoints;
    zIndex: ZIndex;
    transitions: Transitions;
    animation: Animation;
    colors: Colors;
    colorUtils: ColorUtils;
    colorAccessibility: ColorAccessibility;
}
export interface GlassmorphicSkin {
    id: string;
    name: string;
    themeId: string;
    glassIntensity: 'light' | 'medium' | 'heavy';
    customColors?: Partial<ColorPalette>;
    customGlass?: Partial<GlassmorphismConfig>;
}
export interface ThemeCreationOptions {
    activeTheme: any;
    activeSkin: any;
    fallback?: Partial<GlassmorphicTheme>;
}
export interface SemanticColors {
    brand: {
        primary: string;
        secondary: string;
        tertiary: string;
    };
    feedback: {
        success: string;
        warning: string;
        error: string;
        info: string;
    };
    neutral: {
        white: string;
        gray: {
            50: string;
            100: string;
            200: string;
            300: string;
            400: string;
            500: string;
            600: string;
            700: string;
            800: string;
            900: string;
        };
        black: string;
    };
    interactive: {
        default: string;
        hover: string;
        active: string;
        focus: string;
        disabled: string;
    };
}
export interface ColorAccessibility {
    contrastRatio: (foreground: string, background: string) => number;
    isAccessible: (foreground: string, background: string, level?: 'AA' | 'AAA') => boolean;
    getAccessibleText: (background: string) => string;
    generateContrastText: (color: string) => string;
}
export interface ColorUtils {
    lighten: (color: string, amount: number) => string;
    darken: (color: string, amount: number) => string;
    saturate: (color: string, amount: number) => string;
    desaturate: (color: string, amount: number) => string;
    alpha: (color: string, alpha: number) => string;
    mix: (color1: string, color2: string, weight?: number) => string;
    complement: (color: string) => string;
    triadic: (color: string) => [string, string];
    analogous: (color: string) => [string, string];
}
export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
export type ComponentVariant = 'primary' | 'secondary' | 'tertiary' | 'outline' | 'ghost' | 'link';
export type ComponentState = 'default' | 'hover' | 'focus' | 'active' | 'disabled';
export type GlassIntensity = 'light' | 'medium' | 'heavy';
export type ColorScale = 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
export type AccentScale = 'A100' | 'A200' | 'A400' | 'A700';
