UNPKG

molstar

Version:

A comprehensive macromolecular library.

36 lines (35 loc) 1.63 kB
/** * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> * @author David Sehnal <david.sehnal@gmail.com> */ export declare type Mutable<T> = { -readonly [P in keyof T]: T[P]; }; export declare type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>; export declare type PickRequired<T, K extends keyof T> = T & Required<Pick<T, K>>; export declare type TypedIntArray = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array; export declare type TypedFloatArray = Float32Array | Float64Array; export declare type TypedArray = TypedIntArray | TypedFloatArray; export declare type NumberArray = TypedArray | number[]; export declare type UintArray = Uint8Array | Uint16Array | Uint32Array | number[]; export declare type ValueOf<T> = T[keyof T]; export declare type ArrayCtor<T> = { new (size: number): { [i: number]: T; length: number; }; }; /** assignable ArrayLike version */ export declare type AssignableArrayLike<T> = { [i: number]: T; length: number; }; export declare type NonNullableArray<T extends any[] | ReadonlyArray<any>> = T extends any[] ? NonNullable<T[0]>[] : ReadonlyArray<NonNullable<T[0]>>; export declare function ObjectKeys<T extends object>(o: T): (keyof T)[]; export interface FiniteArray<T, L extends number = number> extends ReadonlyArray<T> { length: L; } export declare function assertUnreachable(x: never): never; export declare function isPromiseLike<T = any>(x: any): x is Promise<T>;