export interface LinkedList<T> {
    [Symbol.iterator](): Iterator<T>;
    /**
     * Appends a new element to the end of the list
     *
     * @param {T} item
     */
    push(item: T): void;
    /**
     * Works like Array.shift. Removes the first item from the list
     *
     * @returns {(T | undefined)}
     */
    shift(): T | undefined;
    forEach(cb: (item: T) => void): void;
    map<R>(cb: (item: T) => R): R[];
    consumeAll(cb: (item: T) => boolean): T[];
    consumeOne(cb: (item: T) => boolean): T | undefined;
    clear(): void;
}
export declare const createLinkedList: <T>() => LinkedList<T>;
