@rschedule/rschedule
Version:
A typescript library for working with recurring dates and events.
58 lines • 2.51 kB
TypeScript
import { DateAdapter } from '../date-adapter';
import { IDateAdapter } from '../date-time';
import { IOccurrenceGenerator, IRunArgs } from '../interfaces';
import { RuleOption } from '../rule';
import { IOccurrencesArgs } from './occurrence.iterator';
export declare class CollectionIterator<T extends typeof DateAdapter, G extends ReadonlyArray<IOccurrenceGenerator<T>> = ReadonlyArray<IOccurrenceGenerator<T>>> {
private iterable;
private args;
readonly granularity: CollectionsGranularity;
readonly weekStart?: IDateAdapter.Weekday;
readonly startDate: InstanceType<T> | null;
private iterator;
constructor(iterable: IOccurrenceGenerator<T>, args: ICollectionsRunArgs);
[Symbol.iterator]: () => IterableIterator<Collection<T, ReadonlyArray<IOccurrenceGenerator<T>>>>;
next(): IteratorResult<Collection<T, ReadonlyArray<IOccurrenceGenerator<T>>>>;
/**
* While `next()` and `[Symbol.iterator]` both share state,
* `toArray()` does not share state and always returns the whole
* collections array.
*/
toArray(): Collection<T, ReadonlyArray<IOccurrenceGenerator<T>>>[];
private normalizeDateOutput;
private _run;
private getPeriod;
private incrementPeriod;
private occurrenceIterator;
}
export declare class Collection<T extends typeof DateAdapter, G extends ReadonlyArray<IOccurrenceGenerator<T>> = ReadonlyArray<IOccurrenceGenerator<T>>> {
readonly dates: (InstanceType<T> & {
generators: G;
})[];
readonly granularity: CollectionsGranularity;
readonly periodStart: InstanceType<T> & {
generators: G;
};
readonly periodEnd: InstanceType<T> & {
generators: G;
};
constructor(dates: (InstanceType<T> & {
generators: G;
})[], granularity: CollectionsGranularity, periodStart: InstanceType<T> & {
generators: G;
}, periodEnd: InstanceType<T> & {
generators: G;
});
}
export declare type CollectionsGranularity = 'INSTANTANIOUSLY' | RuleOption.Frequency;
export interface ICollectionsArgs<T extends typeof DateAdapter> extends IOccurrencesArgs<T> {
granularity?: CollectionsGranularity;
weekStart?: IDateAdapter.Weekday;
incrementLinearly?: boolean;
}
export interface ICollectionsRunArgs extends IRunArgs {
granularity?: CollectionsGranularity;
weekStart?: IDateAdapter.Weekday;
incrementLinearly?: boolean;
}
//# sourceMappingURL=collection.iterator.d.ts.map