@sailboat-computer/data-storage
Version:
Shared data storage library for sailboat computer v3
81 lines (80 loc) • 2.17 kB
TypeScript
/**
* 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;