export declare class LazyCollection<T> implements Iterable<T> {
    protected iterable: Iterable<T> | undefined;
    constructor(iterable?: Iterable<T>);
    first(): T | undefined;
    find(predicate: (element: T) => boolean): T | undefined;
    filter(predicate: (element: T) => boolean): this;
    map<R>(mapper: (element: T) => R): LazyCollection<R>;
    toArray(): T[];
    /**
     * USE getIterator() IN METHOD IMPLEMENTATIONS
     *
     * This is to support for..of syntax on non-subclass instances of
     * LazyCollection. getIterator() ensures we use [Symbol.iterator] of the
     * subclass if `iterable` is not set.
     */
    [Symbol.iterator](): Iterator<T>;
    private getIterator;
}
