/** * @packageDocumentation * @module std.ranges */ import { IForwardIterator } from "../../iterator/IForwardIterator"; import { IPointer } from "../../functional/IPointer"; import { ISize } from "../../internal/container/partial/ISize"; import { Vector } from "../../container/Vector"; /** * Forward iterable container. * * @template Iterator Iterator type * @author Jeongho Nam - https://github.com/samchon */ export interface IForwardContainer, Iterator>> extends ISize { /** * Iterator to the first element. * * @return Iterator to the first element. */ begin(): Iterator; /** * Iterator to the end. * * @return Iterator to the end. */ end(): Iterator; } export declare namespace IForwardContainer { /** * Deduct iterator type. */ type IteratorType | IForwardContainer> = Container extends Array ? Vector.Iterator : Container extends IForwardContainer ? Iterator : unknown; /** * Deduct value type. */ type ValueType | IForwardContainer> = IPointer.ValueType>; /** * Deduct similar type. */ type SimilarType | IForwardContainer> = Array> | IForwardContainer, any>>; } //# sourceMappingURL=IForwardContainer.d.ts.map