/**
 * Cycle-based downsampling strategy implementation
 */
import { Downsampler, StoredData, CycleBasedStrategy } from '../../types';
/**
 * Cycle-based downsampler implementation
 */
export declare class CycleBasedDownsampler implements Downsampler {
    readonly type = "cycle-based";
    /**
     * Downsample data using cycle-based strategy
     *
     * @param data - Data to downsample
     * @param strategy - Cycle-based strategy
     * @returns Downsampled data
     */
    downsample(data: StoredData[], strategy: CycleBasedStrategy): Promise<StoredData[]>;
    /**
     * Identify cycles in data
     *
     * @param data - Data to identify cycles in
     * @param cycleDetection - Cycle detection configuration
     * @returns Identified cycles
     */
    private identifyCycles;
    /**
     * Check if data matches condition
     *
     * @param data - Data to check
     * @param condition - Condition to match
     * @returns Whether data matches condition
     */
    private matchesCondition;
    /**
     * Downsample a cycle
     *
     * @param cycle - Cycle to downsample
     * @param samplesPerCycle - Number of samples to keep per cycle
     * @param preserveExtrema - Whether to preserve extrema
     * @returns Downsampled cycle
     */
    private downsampleCycle;
    /**
     * Get numeric fields from data
     *
     * @param data - Data to get numeric fields from
     * @returns Numeric fields
     */
    private getNumericFields;
}
/**
 * Create a new cycle-based downsampler
 *
 * @returns Cycle-based downsampler
 */
export declare function createCycleBasedDownsampler(): Downsampler;
