export interface TileParams {
  x: number
  y: number
  i: number
  t: number
  size: number
}

export type TileFunction = (x: number, y: number, i: number, t: number, size: number) => number | boolean

export interface TileExpression {
  name: string
  code: string
  compiled: TileFunction
}

export interface TileRenderOptions {
  width: number
  height: number
  tileSize: number
  time: number
  backgroundColor: string
  foregroundColor: string
}

export interface TileResult {
  canvas: HTMLCanvasElement
  imageData: ImageData
}