import CultureInfo from "./culture-info"; export interface MapStringTo { [key: string]: T; } export declare class CaseInsensitiveStringMap implements MapStringTo { [key: string]: T; constructor(map?: MapStringTo); } export interface MapNumberTo { [key: number]: T; } /** * Generic type to map cultures to values of a specified type. */ export type MapCultureTo = { [key in CultureInfo]?: T; }; export type NullableResultPromise = Promise; export type OptionalResultPromise = Promise; export type Nullable = T | null; export type Optional = T | undefined; export type UnionKeyToValue = { [K in U]: K; }; export type FromStringIndexTo = { [key in K]?: V; }; export type OptionalPropertyOf = Exclude<{ [K in keyof T]: T extends Record ? never : K; }[keyof T], undefined>; type KeysWithoutType = { [P in keyof T]: Exclude extends K ? never : P; }[keyof T]; /** * A type based on type T without properties of type K. */ export type OmitType = Pick>; export interface KeyValuePair { key: T; value: K; } export type Equals = (() => T extends X ? 1 : 2) extends () => T extends Y ? 1 : 2 ? A : B; export type WritableKeysOf = { [P in keyof T]: Equals<{ [Q in P]: T[P]; }, { -readonly [Q in P]: T[P]; }, P, never>; }[keyof T]; export type WritablePart = Pick>; export type JsonArray = Array; export type JsonObject = { [key: string]: JsonValue; }; export type JsonValue = string | number | boolean | JsonObject | JsonArray | null; export type Object_Unknown = Record; export type EmptyObject = Omit, keyof any>; export type ReadableUploadSource = ArrayBuffer; export {};