export declare type Mutable = { -readonly [P in keyof T]: T[P]; }; export declare type MaybeNull = { [P in keyof T]: T[P] | null; }; export declare type MaybeUndefined = { [P in keyof T]: T[P] | undefined; }; /** * Creates a shallow copy with all ownkeys of the original object that are `null` made `undefined` */ export declare function nullToUndefined(nullable: MaybeNull): MaybeUndefined; export declare type Deferred = { [P in keyof T]: Promise; }; export declare type RecursivePartial = { [P in keyof T]?: T[P] extends Array ? Array> : RecursivePartial; }; export declare type MaybeArray = T | T[]; export declare type MaybePromise = T | PromiseLike; export interface Prioritizeable { readonly priority: number; readonly value: T; } export declare namespace Prioritizeable { type GetPriority = (value: T) => MaybePromise; type GetPrioritySync = (value: T) => number; function toPrioritizeable(rawValue: MaybePromise, getPriority: GetPriority): Promise>; function toPrioritizeable(rawValue: MaybePromise[], getPriority: GetPriority): Promise[]>; function toPrioritizeableSync(rawValue: T[], getPriority: GetPrioritySync): Prioritizeable[]; function prioritizeAllSync(values: T[], getPriority: GetPrioritySync): Prioritizeable[]; function prioritizeAll(values: MaybePromise[], getPriority: GetPriority): Promise[]>; function isValid(p: Prioritizeable): boolean; function compare(p: Prioritizeable, p2: Prioritizeable): number; } export declare namespace ArrayUtils { interface Head extends Array { head(): T; } interface Tail extends Array { tail(): T; } interface Children extends Array { children(): Tail; } const TailImpl: { tail(this: T[]): T; }; const HeadAndChildrenImpl: { head(this: T[]): T; children(this: T_1[]): Tail; }; interface HeadAndTail extends Head, Tail, Children { } function asTail(array: Array): Tail; function asHeadAndTail(array: Array): HeadAndTail; enum Sort { LeftBeforeRight = -1, RightBeforeLeft = 1, Equal = 0 } } /** * Throws when called and statically makes sure that all variants of a type were consumed. */ export declare function unreachable(_never: never, message?: string): never; //# sourceMappingURL=types.d.ts.map