@everwhen/temporal
Version:
42 lines (41 loc) • 1.28 kB
TypeScript
import { Duration, DurationLike } from './duration.js';
import { Point } from './point.js';
export interface SequenceBounds<T extends Point> {
start: T;
end: T;
}
export interface SequenceDef<T extends Point> {
start: T;
end: T;
step?: DurationLike;
}
export interface SequenceItem<T extends Point> {
previous?: T;
value: T;
next?: T;
}
export declare class Sequence<T extends Point> implements Iterable<T> {
readonly start: T;
readonly end: T;
readonly step: Duration;
private total;
constructor(start: T, end: T, step: DurationLike);
static from<T extends Point>(bounds: SequenceDef<T>): Sequence<T>;
[Symbol.iterator](): Iterator<T>;
get bounds(): SequenceBounds<T>;
items(): Generator<SequenceItem<T>>;
forEach(callbackfn: (value: T, index: number) => void): void;
map<U>(mapper: (temporal: T) => U): U[];
group<K>(keyFn: (item: T) => K): Map<K, T[]>;
select<U>(predicate: (item: T) => boolean, mapper: (temporal: T) => U): U[];
filter(predicate: (item: T) => boolean): T[];
with(bounds: Partial<SequenceBounds<T>> & {
step?: DurationLike;
}): Sequence<T>;
get length(): number;
toJSON(): {
start: string;
end: string;
step: string;
};
}