import { type DisposablePipeline } from '../web-driver'; import type { EffectInput } from './kaleidoscope/effect.types'; import type { KaleidoscopeBinding, KaleidoscopeBindOptions } from './kaleidoscope/types'; import type { KaleidoscopePresetBook } from './kaleidoscope.preset-book.types'; export type { CatalogImageId } from '../catalog/images'; export type { AnamorphicLensFlareUniforms, BlurUniforms, CloudsUniforms, CorporateBlobsUniforms, FirefliesUniforms, GodraysUniforms, LayerShaderName, LayerShaderOptions, LightBeamsAndMotesUniforms, NebulaUniforms, PatchableShaderName, PlasmaUniforms, ShaderUniformsMap, SimianlightsUniforms, UniformControl, } from '../catalog/shaders'; export { ANAMORPHIC_LENSFLARE_CONTROLS, BLUR_CONTROLS, CLOUDS_CONTROLS, CORPORATE_BLOBS_CONTROLS, defaultUniforms, FIREFLIES_CONTROLS, GODRAYS_CONTROLS, LIGHT_BEAMS_AND_MOTES_CONTROLS, NEBULA_CONTROLS, PLASMA_CONTROLS, SIMIANLIGHTS_CONTROLS, } from '../catalog/shaders'; export type { CompositeSpec, EffectInput, EffectName, EffectSpec, TransformName, TransformSpec, } from './kaleidoscope/effect.types'; export type { KaleidoscopeBinding, KaleidoscopeBindOptions, MaskInput, PatchesFor, PatchFor, TransformInput, } from './kaleidoscope/types'; export type { KaleidoscopeBlendMode, KaleidoscopeControls, KaleidoscopeLayer, KaleidoscopeLayerTarget, KaleidoscopePreset, KaleidoscopePresetBook, KaleidoscopePresetEntry, KaleidoscopeTaxonomy, } from './kaleidoscope.preset-book.types'; export type { RGB } from './lib/primitives.types'; /** * Like `applyVideoEffects`, but also returns a `dispose()` that tears down every * Insertable-Streams stage (stops each generator and aborts each pipe). The * LiveKit adapter (`react-native-webrtc-kaleidoscope/livekit`) uses this so a * camera flip (restart) or unpublish (destroy) does not leak generators. The * page-shared segmenter and WebGL state are module singletons reused across * stages, so they are intentionally NOT torn down here. */ export declare const applyVideoEffectsDisposable: (track: MediaStreamTrack, effects: ReadonlyArray) => DisposablePipeline; /** * Bind a track and a preset book; get the four verbs back * (`{ kaleidoscope, transform, mask, dispose }`). Presets live in the consumer's * project; these verbs drive them. On web each `kaleidoscope` preset switch and * each `transform` command rebuilds the Insertable-Streams pipeline and yields a * new output track, so read the live track from `onTrack` (or `controls.track`); * the prior pipeline is disposed each command and on `dispose()`. A `kaleidoscope` * patch of the active preset and `mask` both update what the running pipeline * reads per frame (no rebuild). */ export declare const bindKaleidoscope:

(track: MediaStreamTrack, options: KaleidoscopeBindOptions

) => KaleidoscopeBinding

; //# sourceMappingURL=index.web.d.ts.map