import { Block, Comparator, Dictionary, PairPredicate, Positional, Predicate, Sequence, Transform } from "../types"; import { OmniSequence } from "./omni-sequence"; /** * @hidden */ export declare type PipeConstructor = { new (sequence: Sequence): OmniSequence; }; /** * @hidden */ export declare function injectPipeConstructor(constructor: PipeConstructor): void; /** * An omni-sequence that is iterable more than once and supports random access. */ export declare class Span implements OmniSequence { constructor(positional: Positional); constructor(positional: Positional, start: number); constructor(positional: Positional, start: number, end: number); /** * The underlying array or string of the span. */ private _array; /** * The underlying array or string of the span. */ readonly array: Positional; /** * The start index of the span. */ private _start; /** * The start index of the span. */ readonly start: number; /** * The non-inclusive end index of the span. */ private _end; /** * The non-inclusive end index of the span. */ readonly end: number; [Symbol.iterator](): Iterator; toString(): string; all(predicate: Predicate): boolean; as(this: Span): OmniSequence; concat(elements: Sequence): OmniSequence; append(...elements: T[]): OmniSequence; associate(transform: Transform): OmniSequence<[K, T]>; at(index: number): T; cleave(index: number): [T[], T[]]; count(): number; count(predicate: Predicate): number; cut(index: number): OmniSequence; cut(index: number, count: number): OmniSequence; chunk(count: number): OmniSequence; difference(sequence: Sequence): OmniSequence; difference(sequence: Sequence, transform: Transform): OmniSequence; done(): T[]; drop(): OmniSequence; drop(count: number): OmniSequence; drop(predicate: Predicate): OmniSequence; dropLast(): OmniSequence; dropLast(count: number): OmniSequence; dropLast(predicate: Predicate): OmniSequence; each(action: (element: T, index: number, end: Block) => void): OmniSequence; endsWith(suffix: Positional): boolean; endsWith(suffix: Positional, equals: PairPredicate): boolean; entries(): OmniSequence<[number, T]>; entriesReversed(): OmniSequence<[number, T]>; filter(): OmniSequence; filter(predicate: Predicate): OmniSequence; find(predicate: Predicate): T | null; find(predicate: Predicate, instead: O): T | O; findLast(predicate: Predicate): T | null; findLast(predicate: Predicate, instead: O): T | O; first(): T; first(instead: O): T | O; flat(this: Span>): OmniSequence; fold(initial: R, reducer: (accumulator: R, current: T) => R): R; index(predicate: Predicate): number; indices(): OmniSequence; indices(predicate: Predicate): OmniSequence; indicesReversed(): OmniSequence; indicesReversed(predicate: Predicate): OmniSequence; inject(index: number, elements: Sequence): OmniSequence; intersect(sequence: Sequence): OmniSequence; intersect(sequence: Sequence, transform: Transform): OmniSequence; insert(index: number, ...elements: T[]): OmniSequence; invert(this: Span<[K, V]>): OmniSequence<[V, K]>; join(): string; join(separator: string): string; last(): T; last(instead: O): T | O; lastIndex(): number; lastIndex(predicate: Predicate): number; map(this: Span, transform: Transform): OmniSequence<[OK, OV]>; map(this: Span, transform: Transform): OmniSequence; max(this: Span): number; max(transform: Transform): T; mean(this: Span): number; min(this: Span): number; min(transform: Transform): T; none(): boolean; none(predicate: Predicate): boolean; partition(predicate: Predicate): [T[], T[]]; permute(): OmniSequence; prepend(...elements: T[]): OmniSequence; rank(transform: Transform): OmniSequence; remove(predicate: Predicate): OmniSequence; remove(predicate: Predicate, count: number): OmniSequence; removeLast(predicate: Predicate, count: number): OmniSequence; repeat(): OmniSequence; repeat(count: number): OmniSequence; replace(predicate: Predicate, replacement: R): OmniSequence; replace(predicate: Predicate, replacement: R, count: number): OmniSequence; replaceLast(predicate: Predicate, replacement: R, count: number): OmniSequence; reversed(): OmniSequence; set(index: number, element: T): OmniSequence; slice(start: number, end: number): OmniSequence; solid(): Span; some(): boolean; some(predicate: Predicate): boolean; sort(this: Span): OmniSequence; sort(this: Span, descending: boolean): OmniSequence; sort(this: Span): OmniSequence; sort(this: Span, descending: boolean): OmniSequence; sort(comparator: Comparator): OmniSequence; startsWith(prefix: Sequence): boolean; startsWith(prefix: Sequence, equals: PairPredicate): boolean; sum(this: Span): number; swap(first: number, second: number): OmniSequence; take(): OmniSequence; take(count: number): OmniSequence; take(predicate: Predicate): OmniSequence; takeLast(count: number): OmniSequence; takeLast(predicate: Predicate): OmniSequence; toArray(): T[]; toArray(destination: T[]): T[]; toArray(destination: T[], clear: boolean): T[]; toMap(this: Span<[K, V]>): Map; toMap(this: Span<[K, V]>, destination: Map): Map; toMap(this: Span<[K, V]>, destination: Map, clear: boolean): Map; toObject(this: Span<[string, V]>): Dictionary; toObject(this: Span<[string, V]>, destination: Dictionary): Dictionary; toObject(this: Span<[string, V]>, destination: Dictionary, clear: boolean): Dictionary; toSet(): Set; toSet(destination: Set): Set; toSet(destination: Set, clear: boolean): Set; union(sequence: Sequence): OmniSequence; union(sequence: Sequence, transform: Transform): OmniSequence; unique(): OmniSequence; unique(transform: Transform): OmniSequence; use(transform: Transform, R>): R; yank(): Span; zip(elements: Sequence): OmniSequence<[T, V]>; private _index(predicate, reverse?); private _indexNot(predicate, reverse?); private _iterate(reverse); private _after(start); private _before(end); private _copy(); private _empty(); private _sanitizeIndex(index); private _sanitizeCount(count); private _seat(positional); private _slice(start, end); }