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