import '@oicl/openbridge-webcomponents/dist/building-blocks/bar-horizontal/bar-horizontal.js'; import type { ExternalScaleSide, BarContainerStyle, ScaleType, FillMode, AdvicePosition } from '@oicl/openbridge-webcomponents/dist/building-blocks/external-scale/external-scale.js'; import type { FrameStyle, BorderRadiusPosition, Priority, InstrumentState } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js'; import type { AdviceType } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/advice.js'; import type { Snippet } from 'svelte'; export interface Props { class?: string; style?: string; /** Minimum scale value (manual mode) */ minValue?: number; /** Maximum scale value (manual mode) */ maxValue?: number; /** Total width in pixels (including padding bands) */ width?: number; /** Padding left of the drawing area */ paddingLeft?: number; /** Padding right of the drawing area */ paddingRight?: number; /** Which side this scale lives on */ side?: ExternalScaleSide; /** When true, freezes all internal calculations and scales the entire component proportionally (like CSS transform:scale), except label font-size remains constant. When false (default), dimensions react to component properties. */ fixedAspectRatio?: boolean; /** Reference size for proportional scaling when fixedAspectRatio is true. At this width, the scale renders at native 1:1 (matches Figma design). Above this width, the scale grows proportionally; below, it shrinks. */ scaleReferenceSize?: number; /** Show scale tickmarks */ hasScale?: boolean; showLabels?: boolean; /** Show bar */ hasBar?: boolean; /** Show background behind the scale tickmarks. */ scaleBackground?: boolean; /** Bar container background style. When undefined, defaults based on scaleBackground. Set explicitly to override: 'primary' (lighter) or 'secondary' (gray). */ barContainerStyle?: BarContainerStyle | undefined; /** Bar/fill thickness in pixels */ barThickness?: number; /** Tickmark band thickness in pixels. */ tickThickness?: number; /** Label band thickness in pixels. */ labelThickness?: number; /** Array of values for main tickmarks. When undefined, no main tickmarks shown. When empty array [], defaults to [minValue, 0, maxValue]. */ mainTickmarks?: number[] | undefined; /** Interval for primary (longest) tickmarks with labels (minimum 1). When undefined, no primary tickmarks are shown. */ primaryTickmarkInterval?: number | undefined; /** Interval for secondary (medium) tickmarks (minimum 1). When undefined, no secondary tickmarks are shown. */ secondaryTickmarkInterval?: number | undefined; /** Interval for tertiary (shortest) tickmarks (minimum 1). When undefined, no tertiary tickmarks are shown. */ tertiaryTickmarkInterval?: number | undefined; /** Scale display mode: regular or condensed (shorter ticks) */ scaleType?: ScaleType; /** Frame style: regular (4px gap for all), flat (main tickmarks touch edge), framed, or instrument */ frameStyle?: FrameStyle; /** Border radius position based on component layout */ borderRadiusPosition?: BorderRadiusPosition | undefined; /** When true, the component is used inside an instrument (e.g., gauge-trend). In this mode, only label font size responds to .obc-component-size-* CSS classes. Border radius and bar thickness use explicit values or defaults, not CSS variables. */ instrumentMode?: boolean; /** Explicit border radius value in pixels. When instrumentMode=true, this value is used directly (defaults to 8px for regular, 4px for condensed). When instrumentMode=false, this is ignored and border radius is read from CSS variable. */ borderRadius?: number | undefined; /** Color priority: enhanced uses blue instrument colors for bar fill and setpoint */ priority?: Priority; /** Fill visualization mode: fill or tint */ fillMode?: FillMode; /** Minimum fill value for tint mode (defaults to 0) */ fillMin?: number | undefined; /** Maximum fill value for tint mode (defaults to value) */ fillMax?: number | undefined; /** Current value (bar fill level) */ value?: number | undefined; /** Instrument state (affects colors and some marker behavior) */ state?: InstrumentState; /** Advice overlay positioning: center (in bar), inner (covers minor ticks), outer (no overlap) */ advicePosition?: AdvicePosition; /** Advice/alert overlays with state and positioning. When undefined or empty, no advice shown. */ advices?: { min: number; max: number; type: AdviceType; hinted: boolean; }[] | undefined; /** When true, displays a dot indicator at the current value position. The dot is rendered in the scale band, touching its inner edge (towards the chart). This provides an alternative to bar fill for highlighting the current value. */ highlightCurrentValue?: boolean; } export interface Events { } export interface Slots { children?: Snippet; } type $$ComponentProps = Props & Events & Slots; declare const ObcBarHorizontal: import("svelte").Component<$$ComponentProps, { ExternalScaleSide: typeof ExternalScaleSide; BarContainerStyle: typeof BarContainerStyle; ScaleType: typeof ScaleType; FillMode: typeof FillMode; AdvicePosition: typeof AdvicePosition; FrameStyle: typeof FrameStyle; BorderRadiusPosition: typeof BorderRadiusPosition; Priority: typeof Priority; InstrumentState: typeof InstrumentState; AdviceType: typeof AdviceType; }, "">; type ObcBarHorizontal = ReturnType; export default ObcBarHorizontal;