import { Size } from "../../models/rendering"; import { SpectrogramOptions } from "../../components/spectrogram/spectrogramOptions"; import { AudioInformation } from "./audioInformation"; export declare const BUFFER_PROCESSOR_NAME = "buffer-builder-processor"; export declare const HIGH_ACCURACY_TIME_PROCESSOR_NAME = "high-accuracy-time-processor"; export type NamedMessageData = [name: TMessage, data: TData]; export type Generation = { generation: number; }; export type SharedBuffers = { state: SharedArrayBuffer; sampleBuffer: SharedArrayBuffer; }; export type SharedBuffersWithGeneration = SharedBuffers & Generation; export type ProcessorSetupMessage = NamedMessageData<"setup", SharedBuffersWithGeneration>; export type ProcessorMessage = MessageEvent; export type GenerationMetadata = Generation & { audioInformation: AudioInformation; options: SpectrogramOptions; }; export type SharedBuffersWithCanvas = SharedBuffers & { canvas: OffscreenCanvas; }; export type WorkerSetupMessage = NamedMessageData<"setup", SharedBuffersWithCanvas>; export type WorkerResizeCanvasMessage = NamedMessageData<"resize-canvas", Size>; export type WorkerRegenerateSpectrogramMessage = NamedMessageData<"regenerate-spectrogram", GenerationMetadata>; export type WorkerClearCanvasMessage = NamedMessageData<"clear-canvas", never>; export type WorkerDestroyMessage = NamedMessageData<"destroy", never>; export type WorkerMessage = MessageEvent; export type HighAccuracyTimeSharedState = { timeBuffer: SharedArrayBuffer; }; export type HighAccuracyTimeProcessorSetupMessage = NamedMessageData<"setup", HighAccuracyTimeSharedState>; export type HighAccuracyTimeProcessorMessage = MessageEvent;