UNPKG

@genart-api/adapter-layer

Version:

GenArtAPI platform adapter for layer.com

69 lines (68 loc) 2.23 kB
export interface LayerParamChangeEvent extends CustomEvent { detail: { id: string; value: boolean | string | number | ColorResult; }; } export type LayerEvent = "layer:play" | "layer:pause" | "layer:reset" | "layer:preview" | "layer:parameters" | "layer:paramchange"; export type ParameterOption = { value: string; label?: string; }; export type Parameter = NumberParameter | BooleanParameter | ColorParameter | ListParameter | HashParameter; export type BaseParameter = { id: string; name: string; kind: "NUMBER" | "BOOLEAN" | "COLOR" | "LIST" | "HASH"; description?: string; customization_level?: "ARTIST" | "CURATOR" | "VIEWER"; default?: any; }; export type ColorParameter = BaseParameter & { kind: "COLOR"; default?: string; }; export type BooleanParameter = BaseParameter & { kind: "BOOLEAN"; default?: boolean; }; export type NumberParameter = BaseParameter & { kind: "NUMBER"; min?: number | string; max?: number | string; step?: number | string; default?: number | string; }; export type ListParameter = BaseParameter & { kind: "LIST"; options: Array<ParameterOption | string>; default?: string; }; export type HashParameter = BaseParameter & { kind: "HASH"; default?: string; minLength?: number; maxLength?: number; pattern?: "BASE64" | "HEX" | "ALPHABETICAL" | "ALPHANUMERIC"; }; export interface ColorResult { readonly rgb: [number, number, number] | null; readonly hsl: [number, number, number] | null; readonly hex: string | null; } export type LayerSDK = { canvas: HTMLCanvasElement | null; previewEnabled: boolean; debug: boolean; readonly uuid: string; readonly width: number; readonly height: number; readonly prng: () => number; readonly controlled: boolean; readonly parameters: Readonly<Record<string, boolean | string | number | ColorResult>>; params(...params: Parameter[]): Promise<LayerSDK["parameters"]>; preview(video: Blob, thumbnail?: Blob): LayerSDK; registerCanvas(canvasElement: HTMLCanvasElement): LayerSDK; startFPSOverlay(targetFPS?: number, fill?: boolean): LayerSDK; stopFPSOverlay(): LayerSDK; };