import type { PlatformBlocksTheme } from '../../core/theme/types'; import type { KnobAppearance, KnobVariant, KnobRingSegment, KnobRingShadow, KnobPointerStyle, KnobTickLayer, KnobThumbShape, KnobThumbStyle, KnobBehavior, KnobPanningConfig } from './types'; export type ResolvedRingStyle = { thickness: number; color: string; trailColor: string; backgroundColor: string; cap: 'butt' | 'round'; radiusOffset: number; shadow?: KnobRingShadow; segments: KnobRingSegment[]; segmentMode: 'track' | 'progress'; }; export type ResolvedFillStyle = { color: string; borderWidth: number; borderColor: string; radiusOffset: number; }; export type ResolvedThumbStyle = { size: number; activeScale: number; color: string; shape: KnobThumbShape; strokeWidth: number; strokeColor: string; offset: number; glow?: KnobThumbStyle['glow']; style?: KnobThumbStyle['style']; renderThumb?: KnobThumbStyle['renderThumb']; }; export type ResolvedProgressStyle = { mode: 'none' | 'contiguous' | 'split'; color: string; trailColor: string; roundedCaps: boolean; thickness: number; }; export type ResolvedKnobAppearance = { ring: ResolvedRingStyle; fill: ResolvedFillStyle | null; thumb: ResolvedThumbStyle | null; progress: ResolvedProgressStyle | null; pointer: (KnobPointerStyle & { visible: boolean; }) | null; ticks: KnobTickLayer[]; panning: KnobPanningConfig | null; }; export interface ResolveAppearanceOptions { appearance?: KnobAppearance; /** Visual preset merged *under* `appearance`. */ variant?: KnobVariant; theme: PlatformBlocksTheme; behavior: KnobBehavior; disabled: boolean; size: number; thumbSize?: number; accentColor?: string; } export declare const resolveKnobAppearance: ({ appearance: appearanceProp, variant, theme, behavior, disabled, size, thumbSize, accentColor, }: ResolveAppearanceOptions) => ResolvedKnobAppearance;