UNPKG

warscript

Version:

A typescript library for Warcraft III using Warpack.

37 lines (36 loc) 1.35 kB
/// <reference types="@typescript-to-lua/language-extensions" /> /** @noSelfInFile */ type IteratorState<T extends AnyNotNil> = { t: LuaMap<T, T>; n?: T; }; export interface LinkedSet<T> extends LuaPairsKeyIterable<T> { readonly __linkedHashSet: unique symbol; } export declare class LinkedSet<T extends AnyNotNil> { private n; private p; private f?; private l?; private s; copyOf(): LinkedSet<T>; first(): T | undefined; last(): T | undefined; next(key: T): T | undefined; previous(key: T): T | undefined; add(key: T): boolean; remove(key: T): boolean; contains(key: AnyNotNil): key is T & { readonly __oneSidedTypeGuard: unique symbol; }; clear(): void; get size(): number; forEach<Args extends any[]>(action: (value: T, ...args: Args) => void, ...args: Args): void; toArray(): T[]; sumOf(selector: ((value: T) => number) | KeysOfType<T, number>): number; sortBy<R>(selector: ((value: T) => R) | KeysOfType<T, R>): void; protected __pairs(this: LinkedSet<T>): LuaIterator<T | undefined, IteratorState<T>>; } export declare const linkedSetOf: <T extends AnyNotNil>(...elements: readonly T[]) => LinkedSet<T>; export declare const linkedSetOfNotNull: <T extends AnyNotNil>(...elements: readonly (T | null | undefined)[]) => LinkedSet<T>; export {};