import { Camera } from "./3d/camera"; import { Scene } from "./3d/scene"; import { Audio } from "./audio"; import { GLSLFunction, GLSLUtility } from "./glsl"; import { DefinesName } from "./glsl/utilities/defines"; import { Module } from "./module"; import { Output } from "./output"; import { Renderer } from "./renderer"; import { Sandbox } from "./sandbox"; import { Sequence } from "./sequence"; import { Buffer } from "./shader/buffer"; import { Precision, Shader } from "./shader/shader"; import { Source, SourceProxy } from "./source"; import { Texture } from "./texture"; export interface SynthSettings { outputs?: number; sources?: number; textures?: number; sequences?: number; width: number; height: number; canvas: HTMLCanvasElement | OffscreenCanvas; makeGlobal?: boolean; detectAudio?: boolean | { context: AudioContext; source: AudioNode; }; cameraControl?: HTMLElement | false; precision?: Precision; debug?: boolean; autoTick?: boolean; runInWorker?: boolean; } declare class Synth { id: string; time: number; deltaTime: number; mouseX: number; mouseY: number; speed: number; bpm: number; width: number; height: number; precision: Precision; renderOutput: (Output | Texture)[]; renderer: Renderer; drawer: Shader; s: Source[] | SourceProxy[]; o: Output[]; seq: Sequence[]; t: Texture[]; shaders: Shader[]; textures: Texture[]; scenes: Scene[]; buffers: Buffer[]; defaultOutput: Output; tickItv: number; lastTime: number; sandbox: Sandbox; settings: SynthSettings; audio: Audio; _camera: Camera; _scene: Scene; modules: Record; debuggerItv: number; source: string; runInWorker: boolean; constructor(settings: SynthSettings); export(method: string, value: any): void; canvas(canvas: HTMLCanvasElement | OffscreenCanvas): void; cameraReset(): void; createHelpers(): void; render(...args: (Output | Texture)[]): this; hush(): void; stop(): void; resize(width: number, height: number): void; tick(dt?: number): void; start(): void; autoTick(now: number): void; eval(code: string, fullCode?: boolean): Promise; loadScript(url: string, module?: boolean): Promise; module(name: string): Module; include(...requires: (GLSLUtility | GLSLFunction | DefinesName)[]): string; require(...requires: (GLSLUtility | GLSLFunction | DefinesName)[]): string; debugger(container?: HTMLElement): void; } export { Synth };