import { Numbers } from './primitives_types.js'; export type Mutable = { -readonly [P in keyof T]: T[P]; }; export type ConnectionEvent = { code: number; reason: string; wasClean?: boolean; }; export type Optional = Pick, K> & Omit; export type EncodingTypes = Numbers | boolean | Numbers[] | boolean[]; export type TypedObject = { type: string; value: EncodingTypes; }; export type TypedObjectAbbreviated = { t: string; v: EncodingTypes; }; export type Sha3Input = TypedObject | TypedObjectAbbreviated | Numbers | boolean | object; export type IndexKeysForArray = Exclude; export type ArrayToIndexObject> = { [K in IndexKeysForArray]: T[K]; }; type _Grow> = ((x: T, ...xs: A) => void) extends (...a: infer X) => void ? X : never; export type GrowToSize, N extends number> = { 0: A; 1: GrowToSize, N>; }[A['length'] extends N ? 0 : 1]; export type FixedSizeArray = GrowToSize; export {};