import SignBoardError from "./core/SignBoardError";
import Renderer from "./core/Renderer";
import TextureLoader from "./core/TextureLoader";
import { Texture } from "./texture";
import { BROWSER } from "./const/event";
import { getCanvas } from "./utils";
import * as ERROR from "./const/error";
import { CONTENT_TYPE, OBJECT_FIT } from "./const/options";
import { Attributes, ValueOf } from "./types";
/**
* @interface
* @param {"image" | "video" | "text"} [contentType="image"] A type of content
* @param {object} [contentAttribs={}] Additional attributes for image / video element (if you need it)
* @param {number} [frameRate=60] A number of rendering frames per second for video / text
* @param {boolean} [autoResize=true] Enabling this option will make SignBoard to call `resize` whenever window's `resize` event is triggered
* @param {boolean} [autoInit=true] If `false` is given, SignBoard will not automatically initialize immediately after creating instance
* @param {number} [tileSize=8] A size of each tile blocks, in px
* @param {number} [emission=1.5] LED light emission modifier, bigger the brighter. `emission: 1` will render the original color of the contents
* @param {number} [dissipation=0.5] A value indicating how fast light fades out from the center of each tiles
* @param {number} [bulbSize=0.7] A lightbulb's size inside each tiles
* @param {string} [objectFit="fill"] The object-fit CSS property sets how the content of a replaced element, such as an
or