export interface ITimedAggregatorOptions<T> {
    aggregationIntervalInMillis: number;
    functionForAggregation: (input: T[]) => void;
}
export declare class TimedAggregtor<T> {
    options: ITimedAggregatorOptions<T>;
    private storageArray;
    private isStopped;
    constructor(optionsArg: ITimedAggregatorOptions<T>);
    private aggregationTimer;
    private checkAggregationStatus;
    add(aggregationArg: T): void;
    /**
     * stops the aggregation timer chain
     * @param flushRemaining if true, calls functionForAggregation with any remaining items
     */
    stop(flushRemaining?: boolean): void;
    restart(): void;
}
export { TimedAggregtor as TimedAggregator };
