prex-es5
Version:
Async coordination primitives and extensions on top of ES6 Promises
50 lines (48 loc) • 2.17 kB
TypeScript
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Licensed under the Apache License, Version 2.0.
See LICENSE file in the project root for details.
***************************************************************************** */
export declare class LinkedListNode<T> {
value: T | undefined;
constructor(value?: T);
readonly list: LinkedList<T> | undefined;
readonly previous: LinkedListNode<T> | undefined;
readonly next: LinkedListNode<T> | undefined;
}
export declare class LinkedList<T> {
private _head;
private _size;
constructor(iterable?: Iterable<T>);
readonly first: LinkedListNode<T> | undefined;
readonly last: LinkedListNode<T> | undefined;
readonly size: number;
values(): IterableIterator<T | undefined>;
nodes(): IterableIterator<LinkedListNode<T>>;
drain(): IterableIterator<T | undefined>;
find(value: T): LinkedListNode<T> | undefined;
findLast(value: T): LinkedListNode<T> | undefined;
has(value: T): boolean;
insertBefore(node: LinkedListNode<T>, value: T): LinkedListNode<T>;
insertNodeBefore(node: LinkedListNode<T>, newNode: LinkedListNode<T>): void;
insertAfter(node: LinkedListNode<T>, value: T): LinkedListNode<T>;
insertNodeAfter(node: LinkedListNode<T>, newNode: LinkedListNode<T>): void;
push(value?: T): LinkedListNode<T>;
pushNode(newNode: LinkedListNode<T>): void;
pop(): T | undefined;
popNode(): LinkedListNode<T> | undefined;
shift(): T | undefined;
shiftNode(): LinkedListNode<T> | undefined;
unshift(value?: T): LinkedListNode<T>;
unshiftNode(newNode: LinkedListNode<T>): void;
delete(value: T): boolean;
deleteNode(node: LinkedListNode<T> | undefined): boolean;
deleteAll(predicate: (value: T, node: LinkedListNode<T>, list: LinkedList<T>) => boolean, thisArg?: any): number;
clear(): void;
forEach(callback: (value: T, node: LinkedListNode<T>, list: LinkedList<T>) => void, thisArg?: any): void;
private _deleteNode;
private _insertNode;
}
export interface LinkedList<T> {
[Symbol.iterator](): Iterator<T>;
}