export type TimedValue> = { value: Values; timestamp: number; }; export type Values = { [P in keyof T]: number | null; }; export type Deltas = { [P in keyof T & string as `delta${Capitalize

}`]: number | null; }; export type SliceConfig = { numberOfSamples: number; offset?: number; }; export type SliceConfigs = Readonly>; export type SlicedWindowConfigBase = { capacity?: number; maxAllowedGapInMs: number; }; export type SlicedWindowConfig, S extends SliceConfigs> = SlicedWindowConfigBase & { totals: T; slices: S; }; export declare class Slice { readonly numberOfSamples: number; readonly offset: number; durationInMs: number; numberOfEntries: number; constructor(numberOfSamples: number, offset: number); get isReady(): boolean; } export type WindowSlice> = Slice & Deltas; export declare class SlicedWindow, S extends SliceConfigs> { readonly config: SlicedWindowConfig; static readonly MIN_SAMPLES = 2; readonly slices: { readonly [N in keyof S]: WindowSlice; }; readonly capacity: number; private readonly fields; private readonly entries; private readonly slicesByName; private lastTimestamp; constructor(config: SlicedWindowConfig); get numberOfEntries(): number; get registeredSlices(): readonly WindowSlice[]; getSlice(name: N): WindowSlice; add(item: TimedValue): void; reset(): void; private createSlice; private refreshSlices; private refreshSlice; }