Types

Utilities types.

type AlphaType = 'image' | 'bitmaps' | 'video'
type Any = any
type AsyncOrNot = 'async' | 'sync' | undefined
type BooleanFunction = (item: Any) => boolean
type BooleanOrNot = boolean | undefined
interface BooleanRecord 
extends Record<string, boolean> {}
interface BooleanTuple 
extends ArrayOf2<boolean, boolean> {}
type CanvasContextTuple = ArrayOf2<HTMLCanvasElement, CanvasRenderingContext2D>
type ClientOrServer = 'client' | 'server'
type ClientOrStorableMedia = Media | StorableMedia
type DotOrSlash = '.' | '/'
type FileType = MediaType | 'font'
type IfOrIfNot = string
type ImportType = MediaType | 'shape' | 'text'
type Integer = number
type Interval = number
interface JsonRecord 
extends Record<string, JsonContent> {}
type JsonValue = Scalar | Unknowns | UnknownRecord
type Mimetype = string
type Mixed<T, C> = object
type NodeFunction = () => Node
interface NodeFunctionMap 
extends Map<Node, NodeFunction> {}
type Not = undefined | null | void
interface NumberRecord 
extends Record<string, number> {}
interface NumberTuple 
extends ArrayOf2<number, number> {}
type Numbers = Array<number>
type Numeric = OkNumber | string
type OkNumber = number
type OrAsync<T, ASYNC extends AsyncOrNot = AsyncOrNot> = ASYNC extends 'async' ? Promise<T> : T
type Primitive = object | Scalar
type PrimitiveOrUndefined = Primitive | undefined
type Scalar = Value | boolean
type ScalarOrUndefined = Scalar | undefined
interface ScalarProperty 
extends Property {
  fallback?: Scalar
  frame?: number
  icon?: string
  max?: number
  min?: number
  name?: string
  options?: Array<Scalar> | ScalarRecord
  order?: number
  scalar?: Scalar
  step?: number
  target?: string
  tweens?: boolean
  type?: string
  undoable?: boolean
}
interface ScalarPropertyEventDetail  {
  scalarProperty?: ScalarProperty
  signalId: SignalId
}
interface ScalarRecord 
extends Record<string, Scalar> {}
type ScalarType = 'boo' | 'number' | 'string'
type Tuples<T> = Array<T>
interface UnknownRecord 
extends Record<string, unknown> {}
interface UnknownRecords 
extends Array<UnknownRecord> {}
interface Unknowns 
extends Array<unknown> {}
type UnwrapPromise<T> = T extends Promise<infer U> ? U : T
type Value = string | number
interface ValueRecord 
extends Record<string, Value> {}
type VariableOrNumber = string