import { Observable, Subject } from 'rxjs'; import { IIntervalEmission, ITimeEmission } from '../types/Emission'; import { IGroupParameter, ISegmentConfigShape, ISegmentInterface, ISegmentType, ISequenceConfigShape } from '../types/Segment'; import { SegmentCollection } from './SegmentCollection'; export declare class TimeSegment implements ISegmentInterface { config: ISegmentConfigShape; seqConfig: ISequenceConfigShape; pauseObserv: Subject; collection: SegmentCollection; interval: IIntervalEmission; private countingUp; private stateExp; constructor(config: ISegmentConfigShape, countingUp?: boolean); initializeObservable(firstElementOfSeq?: boolean, lastElementOfSeq?: boolean): Observable; /** * 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. */ add(ctor: ISegmentType, config: ISegmentConfigShape): T; /** * Multiply its combined add() invocations and returns a TimeSegment. * @param intervals The number intervals or cycles to be added of segments. Must be 1 or greater * in value. * @param segments Consists of add() invocations. * @returns An instance of T type, which is a subclass of TimeSegment. */ group(intervals: number, ...segments: Array>): T; }