import { AudioFrame } from './audio_frame.js'; import { VideoFrame } from './video_frame.js'; import '@livekit/rtc-ffi-bindings'; type FrameProcessorStreamInfo = { roomName: string; participantIdentity: string; publicationSid: string; }; type FrameProcessorCredentials = { token: string; url: string; }; declare const FrameProcessorSymbol: unique symbol; declare function isFrameProcessor | FrameProcessor | unknown>(maybeProcessor: unknown): maybeProcessor is T extends FrameProcessor ? FrameProcessor : T extends FrameProcessor ? FrameProcessor : FrameProcessor | FrameProcessor; declare abstract class FrameProcessor { readonly symbol: symbol; abstract isEnabled(): boolean; abstract setEnabled(enabled: boolean): void; onStreamInfoUpdated(_info: FrameProcessorStreamInfo): void; onCredentialsUpdated(_credentials: FrameProcessorCredentials): void; abstract process(frame: Frame): Frame; abstract close(): void; } export { FrameProcessor, type FrameProcessorCredentials, type FrameProcessorStreamInfo, FrameProcessorSymbol, isFrameProcessor };