import '@oicl/openbridge-webcomponents/dist/building-blocks/chart-line/chart-line-base.js'; import type { ChartDataset } from 'chart.js'; import type { XAxisType, YAxisPosition, LineMode, TimeDisplay } from '@oicl/openbridge-webcomponents/dist/building-blocks/chart-line/chart-line-base.js'; import type { InstrumentState, Priority, FrameStyle, BorderRadiusPosition } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js'; import type { Snippet } from 'svelte'; export interface Props { class?: string; style?: string; /** Simple single-series data (array of {label, value}). */ data?: { label: string; value: number; }[]; /** Chart.js-style datasets for multi-series use. If provided, takes precedence over `data`. */ datasets?: ChartDataset<"line", (number | { x: string | number | Date; y: number; })[]>[] | undefined; /** Optional explicit labels for the x-axis (category mode). If omitted labels are derived from `data` */ labels?: (string | number)[] | undefined; /** Custom color palette (CSS variable names or color strings). */ colors?: string[]; /** Show HTML legend below chart with series labels and colors. */ legend?: boolean; /** Development mode: show visual debug overlay with dimension guides. */ showDebugOverlay?: boolean; /** Width of the chart in pixels. Default: 480. */ width?: number; /** Height of the chart in pixels. Default: 320. */ height?: number; /** Enable fixed aspect ratio scaling mode. When true, width/height properties define the aspect ratio (not actual pixels). The component fills 100% of parent width and calculates height from aspect ratio. When false (default), width/height are used as actual pixel dimensions. */ fixedAspectRatioScaling?: boolean; /** Reference size for external scales when using fixedAspectRatioScaling. This value is passed down to external scales to determine their 1:1 Figma design size. At this reference size, scales render at native size; above/below they scale proportionally. Default: 384 (matches Figma design baseline). */ scaleReferenceSize?: number; /** X-axis mode: 'category' for labeled data points, 'time' for time-based data. */ xAxisType?: XAxisType; /** Single y-axis position ('left' or 'right'). For multiple y-axes, use yAxes instead. */ yAxisPosition?: YAxisPosition; /** Multiple y-axis definitions for complex multi-axis charts. */ yAxes?: { id?: string | undefined; position?: "left" | "right" | undefined; min?: number | undefined; max?: number | undefined; grid?: boolean | undefined; }[] | undefined; /** Show grid lines. */ showGrid?: boolean; /** Show vertical grid lines (x-axis). Default: false. */ showGridX?: boolean; /** Show horizontal grid lines (y-axis). Default: false. */ showGridY?: boolean; /** Show axis tick marks and labels. */ showTickMarks?: boolean; /** Show point markers on data points. Default: false. */ showPoints?: boolean; /** Line drawing style: 'smooth' (curved), 'straight', or 'stepped'. */ lineMode?: LineMode; /** Unit label displayed in tooltips (e.g., 'kW', 'kg', '%'). */ unit?: string; /** Time axis label format: 'date' (full date/time) or 'minutes' (relative). */ timeDisplay?: TimeDisplay; /** Max number of x-axis ticks/grid lines. Useful for matching external axes. */ xTicksLimit?: number | undefined; /** Force x-axis tick interval. Useful for matching external axes. */ xStepSize?: number | undefined; /** Max number of y-axis ticks/grid lines. Useful for matching external axes. */ yTicksLimit?: number | undefined; /** Force y-axis tick interval. Useful for matching external axes. */ yStepSize?: number | undefined; /** Instrument state affecting colors of external scales. */ state?: InstrumentState; /** Color priority: enhanced uses blue palette instead of default gray. */ priority?: Priority; /** Frame style for chart and external scales. */ frameStyle?: FrameStyle; /** Border radius position for the chart's own border. */ borderRadiusPosition?: BorderRadiusPosition | undefined; /** Border radius position for external scales based on layout. */ borderRadiusPositionExternalScales?: BorderRadiusPosition | undefined; /** When true, the chart 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 uses the explicit `borderRadius` property value (or defaults to 8px), rather than reading from CSS variables. */ instrumentMode?: boolean; /** Explicit border radius value in pixels. When instrumentMode=true, this value is used directly (defaults to 8px). When instrumentMode=false, this is ignored and border radius is read from CSS variable. */ borderRadius?: number | undefined; } export interface Events { } export interface Slots { children?: Snippet; } type $$ComponentProps = Props & Events & Slots; declare const ObcChartLineBase: import("svelte").Component<$$ComponentProps, { ChartDataset: typeof ChartDataset; XAxisType: typeof XAxisType; YAxisPosition: typeof YAxisPosition; LineMode: typeof LineMode; TimeDisplay: typeof TimeDisplay; InstrumentState: typeof InstrumentState; Priority: typeof Priority; FrameStyle: typeof FrameStyle; BorderRadiusPosition: typeof BorderRadiusPosition; }, "">; type ObcChartLineBase = ReturnType; export default ObcChartLineBase;