import React from "react"; import { type OptimizedGlassProps } from "../../primitives"; import { GlassButtonVariantType } from "./types"; import type { ConsciousnessFeatures } from "../layout/GlassContainer"; export interface GlassButtonProps extends Omit, "size">, ConsciousnessFeatures { /** * Button variant */ variant?: GlassButtonVariantType; /** * Button size */ size?: "xs" | "sm" | "md" | "lg" | "xl"; /** * Glass elevation */ elevation?: OptimizedGlassProps["elevation"]; /** * Glass variant for advanced effects */ glassVariant?: "frosted" | "dynamic" | "clear" | "tinted" | "luminous"; /** * Glass intensity */ intensity?: OptimizedGlassProps["intensity"]; /** * Glass depth layers */ depth?: OptimizedGlassProps["depth"]; /** * Glass tint color */ tint?: OptimizedGlassProps["tint"]; /** * Glass border style */ border?: "subtle" | "glow" | "neon" | "none"; /** * Loading state */ loading?: boolean; /** * Icon only button */ iconOnly?: boolean; /** * Full width button */ fullWidth?: boolean; /** * Animation preset */ animation?: "none" | "scale" | "bounce" | "pulse"; /** * Left icon */ leftIcon?: React.ReactNode; /** * Right icon */ rightIcon?: React.ReactNode; /** * Loading spinner */ loadingSpinner?: React.ReactNode; /** * Loading text to display */ loadingText?: string; /** * Render the button as its child element (Slot pattern) */ asChild?: boolean; /** * Flat style override for ghost/link — removes bg/border/shadow/rings */ flat?: boolean; /** * Glass material variant */ material?: "glass" | "liquid"; /** * Material properties for liquid glass */ materialProps?: { ior?: number; thickness?: number; tint?: { r: number; g: number; b: number; a: number; }; variant?: "regular" | "clear"; quality?: "ultra" | "high" | "balanced" | "efficient"; }; /** Glass surface intent */ intent?: "neutral" | "primary" | "success" | "warning" | "danger" | "info"; /** Performance tier */ tier?: "low" | "medium" | "high"; /** * Accessible label for the button (required for iconOnly buttons) */ "aria-label"?: string; /** * ID of element that labels the button */ "aria-labelledby"?: string; /** * ID of element(s) that describe the button */ "aria-describedby"?: string; /** * Whether button is pressed/active (for toggle buttons) */ "aria-pressed"?: boolean; /** * Whether button controls expanded content */ "aria-expanded"?: boolean; /** * ID of element controlled by this button */ "aria-controls"?: string; /** * Whether button has popup menu or dialog */ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog"; /** * Description text for complex buttons (automatically creates describedby) */ description?: string; } /** * GlassButton component * A glassmorphism button with multiple variants and animations */ export declare const GlassButton: React.ForwardRefExoticComponent>; /** * Icon Button component */ export interface IconButtonProps extends Omit { /** * Icon to display */ icon: React.ReactNode; /** * Accessible label */ "aria-label": string; } export declare const IconButton: React.ForwardRefExoticComponent>; /** * Button Group component */ export interface ButtonGroupProps { children: React.ReactNode; /** * Group orientation */ orientation?: "horizontal" | "vertical"; /** * Group size */ size?: GlassButtonProps["size"]; /** * Group variant */ variant?: GlassButtonProps["variant"]; /** * Whether buttons are connected */ connected?: boolean; className?: string; } export declare function ButtonGroup({ children, orientation, size, variant, connected, className, }: ButtonGroupProps): import("react/jsx-runtime").JSX.Element; /** * Toggle Button component */ export interface ToggleButtonProps extends Omit { /** * Whether the button is pressed/active */ pressed?: boolean; /** * Callback when pressed state changes */ onPressedChange?: (pressed: boolean) => void; /** * Pressed variant */ pressedVariant?: GlassButtonProps["variant"]; /** * Unpressed variant */ unpressedVariant?: GlassButtonProps["variant"]; } export declare const ToggleButton: React.ForwardRefExoticComponent>; /** * Floating Action Button component */ export interface FloatingActionButtonProps extends Omit { /** * FAB size */ size?: "sm" | "md" | "lg"; /** * FAB position */ position?: "bottom-right" | "bottom-left" | "top-right" | "top-left"; /** * Icon to display */ icon: React.ReactNode; /** * Extended FAB with text */ extended?: boolean; /** * Accessible label */ "aria-label": string; } export declare const FloatingActionButton: React.ForwardRefExoticComponent>; /** * Enhanced GlassButton with consciousness features enabled by default * Use this for buttons that should be intelligent and adaptive */ export declare const ConsciousGlassButton: React.ForwardRefExoticComponent>; /** * Eye-tracking enabled button for gaze-responsive interactions */ export declare const GazeResponsiveButton: React.ForwardRefExoticComponent>; /** * Predictive button that learns user interaction patterns */ export declare const PredictiveButton: React.ForwardRefExoticComponent>; /** * Accessibility-focused button with biometric adaptation and spatial audio */ export declare const AccessibleButton: React.ForwardRefExoticComponent>; /** * Pre-configured consciousness button presets */ export declare const ButtonConsciousnessPresets: { /** * Minimal consciousness features for performance-sensitive contexts */ readonly minimal: { readonly predictive: true; readonly trackAchievements: true; }; /** * Balanced consciousness features for general use */ readonly balanced: { readonly predictive: true; readonly adaptive: true; readonly biometricResponsive: true; readonly trackAchievements: true; }; /** * Full consciousness features for immersive experiences */ readonly immersive: { readonly predictive: true; readonly preloadContent: true; readonly eyeTracking: true; readonly gazeResponsive: true; readonly adaptive: true; readonly biometricResponsive: true; readonly spatialAudio: true; readonly audioFeedback: true; readonly trackAchievements: true; }; /** * Accessibility-focused consciousness features */ readonly accessible: { readonly adaptive: true; readonly biometricResponsive: true; readonly spatialAudio: true; readonly audioFeedback: true; readonly trackAchievements: true; }; }; //# sourceMappingURL=GlassButton.d.ts.map