UNPKG

semantic-ds-toolkit

Version:

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

44 lines 1.79 kB
export type TimeGrain = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year' | 'auto'; export type AdjustmentStrategy = 'floor' | 'ceil' | 'round' | 'nearest'; export interface GrainAdjustmentResult { originalTimestamps: Date[]; adjustedTimestamps: Date[]; sourceGrain: TimeGrain; targetGrain: TimeGrain; strategy: AdjustmentStrategy; gapsFound: number; statisticsPreserved: boolean; } export interface GrainStatistics { mostCommonInterval: number; intervalVariance: number; detectedGrain: TimeGrain; confidence: number; regularityScore: number; } export declare class GrainAdjuster { private grainMilliseconds; detectGrain(timestamps: Date[]): TimeGrain; private intervalToGrain; adjustGrain(timestamps: Date[], sourceGrain: TimeGrain, targetGrain: TimeGrain, strategy?: AdjustmentStrategy): Promise<GrainAdjustmentResult>; private adjustSingleTimestamp; private alignToNearestCalendarBoundary; private countGaps; private checkStatisticsPreservation; getGrainStatistics(timestamps: Date[]): GrainStatistics; private getMostCommonInterval; private calculateVariance; private calculateConfidence; private calculateRegularityScore; createTimeGrid(startTime: Date, endTime: Date, grain: TimeGrain): Date[]; getGrainMilliseconds(grain: TimeGrain): number; isValidGrain(grain: string): grain is TimeGrain; getAvailableGrains(): TimeGrain[]; compareGrains(grain1: TimeGrain, grain2: TimeGrain): number; optimizeGrainForDataset(timestamps: Date[], targetDataPoints?: number): Promise<{ recommendedGrain: TimeGrain; reasoning: string; }>; private getCoarserGrain; } //# sourceMappingURL=grain-adjuster.d.ts.map