import { Cloneable } from "../../util/interface/Cloneable";
import { AbstractList } from "../AbstractList";
import { Element } from "../Collection";
import { LinkedListNode } from "../LinkedList";
import { List } from "../List";
/**
 * This class is denoted to work with a sub set of items in the parent collection
 */
export declare class ListView<T> extends AbstractList<T> implements Cloneable {
    private _owner;
    private _parent;
    private _head;
    private _tail;
    private _savedModCount;
    private _parentFromIndex;
    private _parentToIndex;
    private _ownerFromIndex;
    private _ownerToIndex;
    private _size;
    constructor(parent: AbstractList<T>, fromIndex: number, toIndex: number);
    /**
     * @override
     */
    get size(): number;
    /**
     * @private
     */
    private _checkModCount;
    [Symbol.iterator](): IterableIterator<Element<T>>;
    [Symbol.toStringTag]: string;
    clone(): ListView<T>;
    /**
     * @override
     */
    getNode(index: number): LinkedListNode<T> | null;
    /**
     * @override
     */
    getParentRange(): [number, number];
    /**
     * @override
     */
    getParent(): AbstractList<T> | null;
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    clear(): void;
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    get(index: number): Element<T> | undefined;
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    indexOf(value: Element<T>, fromIndex?: number | undefined): number;
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    insert(index: number, value: Element<T>): boolean;
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    lastIndexOf(value: Element<T>, fromIndex?: number | undefined): number;
    /**
     * @override
     */
    removeRange(fromIndex: number, toIndex?: number | undefined): boolean;
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    set(index: number, value: Element<T>): Element<T> | undefined;
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    subList(fromIndex: number, toIndex: number): List<T>;
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    append(value: Element<T>): boolean;
    /**
     * @override
     */
    contains(value: Element<T>): boolean;
    /**
     * @override
     */
    toArray(): Element<T>[];
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    remove(value: Element<T>): boolean;
    /**
     * @override
     * @throws ConcurrentModificationException
     */
    removeAt(index: number): Element<T> | undefined;
}
