import * as _craftedcode_dev_ngx_analog_clock from '@craftedcode-dev/ngx-analog-clock'; import * as _angular_core from '@angular/core'; import { OnInit, OnDestroy, OnChanges, EventEmitter, SimpleChanges } from '@angular/core'; type ClockTheme = 'light' | 'dark' | 'custom'; type ClockMarkers = 'lines' | 'numbers' | 'dots' | 'lines-numbers' | 'dots-numbers' | 'none'; type LabelPosition = 'top' | 'bottom'; type TimeFormat = '12h' | '24h'; type NumberStyle = 'arabic' | 'roman'; type NumberWeight = 'light' | 'normal' | 'bold'; interface IndividualHandConfig { /** Show this hand (default: true) */ show?: boolean; /** Hand length as percentage of radius (0-1, default varies by hand) */ length?: number; /** Hand width in pixels (default varies by size, min/max enforced) */ width?: number; } interface HandConfig { /** Hour hand configuration */ hour?: IndividualHandConfig; /** Minute hand configuration */ minute?: IndividualHandConfig; /** Second hand configuration */ second?: IndividualHandConfig; /** Enable smooth animation for clock hands (default: false) */ smooth?: boolean; } interface DisplayConfig { /** Marker type - lines, numbers, dots, lines-numbers, dots-numbers, none (default: 'lines') */ markers?: ClockMarkers; /** Show border/glow ring (default: true) */ showBorder?: boolean; /** Border width in pixels (min: 1, max: 10, default: responsive based on size) */ borderWidth?: number; /** Show inner ring (default: false) */ showInnerRing?: boolean; /** Show center ring around center dot (default: false) */ showCenterRing?: boolean; /** Number style - arabic (1,2,3) or roman (I,II,III) (default: 'arabic') */ numberStyle?: NumberStyle; /** Number font size in pixels (min: 8, max: 32, default: responsive 10/14/16) */ numberSize?: number; /** Number font weight - light (300), normal (400), bold (700) (default: 'normal') */ numberWeight?: NumberWeight; /** Hour marker width/size in pixels - works for both lines and dots (min: 1, max: 10, default: responsive 2-4) */ hourMarkerWidth?: number; /** Minute marker width/size in pixels - works for both lines and dots (min: 0 to hide, max: 5, default: 1-1.5) */ minuteMarkerWidth?: number; } interface LabelConfig { /** Label text to display on clock */ text: string; /** Label position - top or bottom (default: 'top') */ position?: LabelPosition; } interface DigitalDisplayConfig { /** Enable digital time display (default: false) */ enabled: boolean; /** Time format - 12h or 24h (default: '24h') */ format?: TimeFormat; /** Show seconds in digital time (default: true) */ showSeconds?: boolean; /** Show date below time (default: false) */ showDate?: boolean; /** Custom color for digital display (optional) */ color?: string; } /** Background gradient configuration */ interface GradientConfig { /** Gradient type - linear (directional) or radial (center to edges) */ type?: 'linear' | 'radial'; /** Start color (center color for radial gradients) */ start: string; /** End color (edge color for radial gradients) */ end: string; /** Gradient angle in degrees (0-360, only for linear gradients, default: 135) */ angle?: number; } interface ClockCustomColors { /** Clock background color (solid) */ background?: string; /** Background gradient (overrides solid background if provided) */ backgroundGradient?: GradientConfig; /** Border/glow ring color */ border?: string; /** Hand colors */ hands?: { hour?: string; minute?: string; second?: string; }; /** Marker colors */ markers?: { hour?: string; minute?: string; numbers?: string; }; /** Center dot colors */ center?: { dot?: string; ring?: string; }; /** Inner ring color */ innerRing?: string; /** Label text color */ label?: string; } interface AnalogClockConfig { /** Clock size in pixels (min: 100, default: 200) */ size?: number; /** Clock theme - light, dark or custom (default: 'light') */ theme?: ClockTheme; /** Timezone - 'local' or IANA timezone string like 'Europe/Belgrade' (default: 'local') */ timezone?: string; /** Hand configuration */ hands?: HandConfig; /** Display elements configuration */ display?: DisplayConfig; /** Custom colors - works with any theme! */ customColors?: ClockCustomColors; /** Label configuration (optional) */ label?: LabelConfig; /** Digital display configuration (optional) */ digitalDisplay?: DigitalDisplayConfig; /** Manual time mode - if provided, clock shows this time instead of realtime (optional) */ time?: Date; /** Custom CSS class to apply to the clock container for advanced styling (optional) */ customClass?: string; } interface Position { x: number; y: number; } declare class AnalogClockComponent implements OnInit, OnDestroy, OnChanges { constructor(); secondHandTailPosition: _angular_core.Signal<{ x: number; y: number; }>; size: number; theme: ClockTheme; timezone: string; time?: Date; customClass?: string; hands: HandConfig; display: DisplayConfig; customColors?: ClockCustomColors; label?: LabelConfig; digitalDisplay?: DigitalDisplayConfig; set config(value: Partial); tick: EventEmitter; hourChange: EventEmitter; private sizeSignal; private baseTime; private animationTime; private timezoneOffset; private lastEmittedHour?; private animationFrameId?; private timeUpdateInterval?; private currentTime; displayHourMarkers: _angular_core.Signal; cardinalMarkers: _angular_core.Signal; displayNumbers: _angular_core.Signal; minutes: _angular_core.Signal; center: _angular_core.Signal; radius: _angular_core.Signal; isSmall: _angular_core.Signal; isMedium: _angular_core.Signal; private hourAngle; private minuteAngle; private secondAngle; private getHandPosition; hourHandPosition: _angular_core.Signal; minuteHandPosition: _angular_core.Signal; secondHandPosition: _angular_core.Signal; hourHandX: () => number; hourHandY: () => number; minuteHandX: () => number; minuteHandY: () => number; secondHandX: () => number; secondHandY: () => number; secondHandTailX: () => number; secondHandTailY: () => number; secondAngleValue: () => number; private getMarkerCoords; getMarkerX1: (index: number, isHour: boolean) => number; getMarkerY1: (index: number, isHour: boolean) => number; getMarkerX2: (index: number, isHour: boolean) => number; getMarkerY2: (index: number, isHour: boolean) => number; private getDotPosition; getDotX: (index: number, isHour: boolean) => number; getDotY: (index: number, isHour: boolean) => number; getNumberX(hour: number): number; getNumberY(hour: number): number; private validateHandLength; private validateHandWidth; effectiveShowHour: () => boolean; effectiveShowMinute: () => boolean; effectiveShowSecond: () => boolean; effectiveSmoothHands: () => boolean; effectiveMarkers: () => _craftedcode_dev_ngx_analog_clock.ClockMarkers; effectiveShowBorder: () => boolean; effectiveShowInnerRing: () => boolean; effectiveShowCenterRing: () => boolean; effectiveNumberStyle: () => _craftedcode_dev_ngx_analog_clock.NumberStyle; effectiveLabelText: () => string | undefined; effectiveLabelPosition: () => _craftedcode_dev_ngx_analog_clock.LabelPosition; effectiveHourHandLength: () => number; effectiveMinuteHandLength: () => number; effectiveSecondHandLength: () => number; private getResponsiveHourWidth; private getResponsiveMinuteWidth; private getResponsiveSecondWidth; hourHandWidth(): number; minuteHandWidth(): number; secondHandWidth(): number; hourMarkerWidth(): number; minuteMarkerWidth(): number; hourDotRadius(): number; minuteDotRadius(): number; numberFontSize(): number; numberFontWeight(): string; fontSize(): number; numberPositionMultiplier(): number; labelFontSize(): number; labelY(): number; centerDotRadius(): number; centerDotInnerRadius(): number; borderWidth(): number; customStyles(): { [key: string]: string; }; hasBackgroundGradient(): boolean; getGradientType(): 'linear' | 'radial'; isLinearGradient(): boolean; isRadialGradient(): boolean; gradientId: string; getGradientCoordinates(): { x1: string; y1: string; x2: string; y2: string; }; getRadialGradientCoordinates(): { cx: string; cy: string; r: string; }; getGradientStartColor(): string; getGradientEndColor(): string; getCircleFill(): string | undefined; digitalTime: _angular_core.Signal; digitalDate: _angular_core.Signal; getNumberDisplay(hour: number): string; getAriaLabel(): string; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; private validateInputs; private setManualTime; private startTimeUpdates; private startAnimation; private restartAnimation; private stopAnimation; private updateTime; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { AnalogClockComponent }; export type { AnalogClockConfig, ClockCustomColors, ClockMarkers, ClockTheme, DigitalDisplayConfig, DisplayConfig, GradientConfig, HandConfig, IndividualHandConfig, LabelConfig, LabelPosition, NumberStyle, NumberWeight, TimeFormat };