UNPKG

@cosmicmind/algojs

Version:

A TypeScript library featuring algorithms and data structures.

32 lines 2.42 kB
import { Optional } from '@cosmicmind/foundationjs'; export type Listable = { next?: Listable; previous?: Listable; }; export declare const ListCompareFn: <T extends Listable>(a: T, b: T) => number; export declare const listNodeCreate: <T extends Listable>(props?: Omit<T, keyof Listable>) => T; export type List<T extends Listable> = { first?: T; last?: T; count: number; }; export declare const listCreate: <T extends Listable>() => List<T>; export declare function listInsert<T extends Listable>(list: List<T>, node: T): void; export declare function listRemoveFirst<T extends Listable>(list: List<T>): Optional<T>; export declare function listAppend<T extends Listable>(list: List<T>, node: T): void; export declare function listRemoveLast<T extends Listable>(list: List<T>): Optional<T>; export declare function listInsertBefore<T extends Listable>(list: List<T>, insert: T, before: T, compare?: (a: T, b: T) => number): void; export declare function listRemoveBefore<T extends Listable>(list: List<T>, before: T, compare?: (a: T, b: T) => number): Optional<T>; export declare function listInsertAfter<T extends Listable>(list: List<T>, insert: T, after: T, compare?: (a: T, b: T) => number): void; export declare function listRemoveAfter<T extends Listable>(list: List<T>, after: T, compare?: (a: T, b: T) => number): Optional<T>; export declare function listRemove<T extends Listable>(list: List<T>, node: T, compare?: (a: T, b: T) => number): void; export declare function listIterateFromFirst<T extends Listable>(list: List<T>): IterableIterator<T>; export declare function listIterateFromLast<T extends Listable>(list: List<T>): IterableIterator<T>; export declare function listIterateToNext<T extends Listable>(node: T): IterableIterator<T>; export declare function listIterateToPrevious<T extends Listable>(node: T): IterableIterator<T>; export declare function listClear<T extends Listable>(list: List<T>): void; export declare function listIsFirst<T extends Listable>(list: List<T>, node: T, compare?: (a: T, b: T) => number): boolean; export declare function listIsLast<T extends Listable>(list: List<T>, node: T, compare?: (a: T, b: T) => number): boolean; export declare function listHas<T extends Listable>(list: List<T>, node: T): boolean; export declare function listQuery<T extends Listable>(list: List<T>, ...fn: ((node: T) => boolean)[]): Set<T>; //# sourceMappingURL=List.d.ts.map