import { BoxProps, PolymorphicFactory, StylesApiProps, type MantineColor, type MantineGradient, type MantineRadius, type MantineSize, type TooltipProps } from '@mantine/core'; import React from 'react'; import { LedGroup } from './Group'; import { LedMatrix } from './Matrix'; import { LedSevenSegment } from './SevenSegment'; export type LedVariant = 'flat' | '3d' | 'neon' | 'dot'; export type LedAnimationType = 'pulse' | 'flash' | 'breathe' | 'blink' | 'glow' | 'none'; export type LedShape = 'circle' | 'square' | 'rectangle'; export type LedStylesNames = 'root' | 'led' | 'label' | 'light' | 'glow'; export type LedCssVariables = { root: '--led-size' | '--led-radius' | '--led-color' | '--led-off-color' | '--led-intensity' | '--led-animation-duration' | '--led-animation-count' | '--led-animation-delay' | '--led-glow-size' | '--led-justify-content' | '--led-gradient'; }; export interface LedBaseProps { /** LED color from theme */ color?: MantineColor; /** LED size */ size?: MantineSize | (string & {}) | number; /** Border radius */ radius?: MantineRadius | (string & {}) | number; /** Controls LED on/off state */ value?: boolean; /** Light intensity (0-100) */ intensity?: number; /** Enable animation */ animate?: boolean; /** Animation type; one of 'pulse', 'flash', 'breathe', 'blink', 'glow', or 'none' */ animationType?: LedAnimationType; /** Animation duration in seconds */ animationDuration?: number; /** Number of animation iterations before stopping, defaults to infinite */ animationCount?: number; /** Delay in seconds before animation starts */ animationDelay?: number; /** Called when animation completes (only fires with finite animationCount) */ onAnimationEnd?: () => void; /** Label content */ label?: React.ReactNode; /** Label position */ labelPosition?: 'left' | 'right'; /** `justify-content` CSS property */ justify?: React.CSSProperties['justifyContent']; /** Color when LED is off */ offColor?: MantineColor; /** Called when LED is clicked, makes LED interactive */ onChange?: (value: boolean) => void; /** Tooltip content */ tooltip?: React.ReactNode; /** Props passed to the Tooltip component */ tooltipProps?: Omit; /** LED shape */ shape?: LedShape; /** Gradient for multicolor LED (applied when on) */ gradient?: MantineGradient; /** Additional description for screen readers */ description?: string; } export interface LedProps extends BoxProps, LedBaseProps, StylesApiProps { } export type LedFactory = PolymorphicFactory<{ props: LedProps; defaultComponent: 'div'; defaultRef: HTMLDivElement; stylesNames: LedStylesNames; variant: LedVariant; vars: LedCssVariables; staticComponents: { Group: typeof LedGroup; Matrix: typeof LedMatrix; SevenSegment: typeof LedSevenSegment; }; }>; export declare const Led: ((props: import("@mantine/core").PolymorphicComponentProps) => React.ReactElement) & Omit & { ref?: any; renderRoot?: (props: any) => any; }) | (LedProps & { component: React.ElementType; renderRoot?: (props: Record) => any; })>, never> & import("@mantine/core").ThemeExtend<{ props: LedProps; defaultComponent: "div"; defaultRef: HTMLDivElement; stylesNames: LedStylesNames; variant: LedVariant; vars: LedCssVariables; staticComponents: { Group: typeof LedGroup; Matrix: typeof LedMatrix; SevenSegment: typeof LedSevenSegment; }; }> & import("@mantine/core").ComponentClasses<{ props: LedProps; defaultComponent: "div"; defaultRef: HTMLDivElement; stylesNames: LedStylesNames; variant: LedVariant; vars: LedCssVariables; staticComponents: { Group: typeof LedGroup; Matrix: typeof LedMatrix; SevenSegment: typeof LedSevenSegment; }; }> & { varsResolver: import("@mantine/core").VarsResolver<{ props: LedProps; defaultComponent: "div"; defaultRef: HTMLDivElement; stylesNames: LedStylesNames; variant: LedVariant; vars: LedCssVariables; staticComponents: { Group: typeof LedGroup; Matrix: typeof LedMatrix; SevenSegment: typeof LedSevenSegment; }; }>; } & import("@mantine/core").PolymorphicComponentWithProps<{ props: LedProps; defaultComponent: "div"; defaultRef: HTMLDivElement; stylesNames: LedStylesNames; variant: LedVariant; vars: LedCssVariables; staticComponents: { Group: typeof LedGroup; Matrix: typeof LedMatrix; SevenSegment: typeof LedSevenSegment; }; }> & { Group: typeof LedGroup; Matrix: typeof LedMatrix; SevenSegment: typeof LedSevenSegment; };