import { IEnumerable } from '../core/IEnumerable';
import { IParallelQueryable } from '../linq/IParallelQueryable';
import { IQueryable } from '../linq/IQuerable';
import { ICollection } from './ICollection';
import { ILinkedList } from './ILinkedList';
import { IList } from './IList';
export interface LinkedListNode<E> {
    Current: E;
    Next?: LinkedListNode<E>;
    Previous?: LinkedListNode<E>;
}
export declare class LinkedList<E> implements ILinkedList<E> {
    private iterator;
    private nodeIterator;
    private length;
    private lastNode;
    private firstNode;
    constructor(enumerable?: IEnumerable<E> | Iterable<E>);
    isEmpty(): boolean;
    contains(item: E): boolean;
    get size(): number;
    clear(): boolean;
    insert(index: number, item: E): boolean;
    add(...items: E[]): boolean;
    addFirst(item: E): boolean;
    addLast(item: E): boolean;
    get(index: number): E;
    set(index: number, item: E): void;
    getFirst(): E;
    getLast(): E;
    shift(): E;
    get first(): E;
    get last(): E;
    indexOf(item: E): number;
    lastIndexOf(item: E): number;
    remove(item: E): boolean;
    removeFirst(): boolean;
    removeLast(): boolean;
    clone(): ILinkedList<E>;
    toArray(): E[];
    toCollection(): ICollection<E>;
    toList(): IList<E>;
    toSet(): Set<E>;
    linq(): IQueryable<E>;
    plinq(): IParallelQueryable<E>;
    [Symbol.iterator](): Iterator<E>;
    private getInterenal;
    private getInterenalItem;
    private removeInternal;
    private addInternal;
}
