import { Observable, Subject } from 'rxjs'; import { ITimeEmission } from '../types/Emission'; import { IGroupParameter, ISegmentConfigShape, ISegmentType, ISequenceConfigShape } from '../types/Segment'; import { TimeSegment } from './TimeSegment'; /** * Simply a pass-thru function to be used with-in a group functions parentheses. * * Adds a single segment (`CountupSegment` or `CountdownSegment`) to a sequence. * @param ctor A type being subclass of `TimeSegment`, specifically `CountupSegment` or * `CountdownSegment`. * @param config Config file specifiying `duration` (required) and `states` (optional). When used * inside a group function, the `omitFirst` can be used to omit this segment when its assigned to * the first interval. * @returns An instance of `T` type, which is a subclass of `TimeSegment`. */ export declare function add(ctor: ISegmentType, config: ISegmentConfigShape): IGroupParameter; export declare class SegmentCollection { config: ISequenceConfigShape; private pauseObserv; private segments; constructor(config: ISequenceConfigShape, pauseObserv: Subject); add(ctor: ISegmentType, config: ISegmentConfigShape): T; group(intervals?: number, ...segments: Array>): T; toSequencedObservable(): Observable; }