semantic-ds-toolkit
Version:
Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference
50 lines • 1.7 kB
TypeScript
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