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