import { Observable } from "rxjs"; export type Json = string | number | boolean | null | Json[] | { [property: string]: Json; }; export type Unbox = T extends any[] ? T[number] : T; export type Class = new (...args: any) => T; export type DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial; } : T; export type SyncOrAsyncValue = T | Promise | Observable;