UNPKG

semantic-ds-toolkit

Version:

Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference

50 lines 1.7 kB
import { TimeGrain } from './grain-adjuster'; export interface TimeAlignmentConfig { targetTimezone?: string; targetGrain?: TimeGrain; preserveStatistics?: boolean; fillMethod?: 'forward' | 'backward' | 'interpolate' | 'zero' | 'drop'; alignmentStrategy?: 'floor' | 'ceil' | 'round' | 'nearest'; } export interface TimeSeriesData { timestamp: Date; value: number; metadata?: Record<string, any>; } export interface AlignmentResult { originalData: TimeSeriesData[]; alignedData: TimeSeriesData[]; alignment: { sourceTimezone?: string; targetTimezone?: string; sourceGrain?: TimeGrain; targetGrain?: TimeGrain; strategy: string; fillMethod: string; dataLoss: number; }; statistics: { originalCount: number; alignedCount: number; duplicatesRemoved: number; gapsfilled: number; }; } export declare class TimeAligner { private timezoneHandler; private grainAdjuster; constructor(); alignTimeSeries(data: TimeSeriesData[], config?: TimeAlignmentConfig): Promise<AlignmentResult>; private convertTimezone; private adjustGrain; private aggregateValues; private fillGaps; private calculateFilledValue; alignMultipleSeries(seriesData: Record<string, TimeSeriesData[]>, config?: TimeAlignmentConfig): Promise<Record<string, AlignmentResult>>; createCommonTimeGrid(seriesData: Record<string, TimeSeriesData[]>, config?: TimeAlignmentConfig): Promise<{ timeGrid: Date[]; alignedSeries: Record<string, TimeSeriesData[]>; statistics: Record<string, any>; }>; } //# sourceMappingURL=align-time.d.ts.map