UNPKG

@sailboat-computer/data-storage

Version:

Shared data storage library for sailboat computer v3

81 lines (80 loc) 2.17 kB
/** * Downsampling engine implementation */ import { DownsamplingEngine, DownsamplingRule, Downsampler, StoredData } from '../types'; /** * Downsampling engine implementation */ export declare class DownsamplingEngineImpl implements DownsamplingEngine { private rules; private downsamplers; private initialized; /** * Initialize the downsampling engine * * @param rules - Downsampling rules */ initialize(rules: DownsamplingRule[]): void; /** * Downsample data * * @param data - Data to downsample * @returns Downsampled data */ downsample(data: StoredData[]): Promise<StoredData[]>; /** * Register a downsampler * * @param downsampler - Downsampler to register */ registerDownsampler(downsampler: Downsampler): void; /** * Get a downsampler for a strategy type * * @param strategyType - Strategy type * @returns Downsampler or undefined if not found */ getDownsampler(strategyType: string): Downsampler | undefined; /** * Group data by category * * @param data - Data to group * @returns Data grouped by category */ private groupByCategory; /** * Find rule for category * * @param category - Data category * @returns Downsampling rule or undefined if not found */ private findRuleForCategory; /** * Separate critical data from non-critical data * * @param data - Data to separate * @param conditions - Critical data conditions * @returns Tuple of critical and non-critical data */ private separateCriticalData; /** * Check if data is critical * * @param data - Data to check * @param conditions - Critical data conditions * @returns Whether data is critical */ private isCriticalData; /** * Ensure downsampling engine is initialized * * @throws StorageError if not initialized */ private ensureInitialized; } /** * Create a new downsampling engine * * @returns Downsampling engine */ export declare function createDownsamplingEngine(): DownsamplingEngine;