import { Extension as Extension$1, VideoProcessor as VideoProcessor$1, IProcessorContext } from 'agora-rte-extension'; import { Player } from '@banuba/webar'; /** Same options as of Player.create(), see {@link https://docs.banuba.com/face-ar-sdk-v1/generated/typedoc/classes/Player.html#create} */ type VideoProcessorOptions = Parameters<(typeof Player)["create"]>[0]; /** Banuba WebAR extension for Agora RTC */ declare class Extension extends Extension$1 { private readonly _options; constructor(opts: VideoProcessorOptions); /** Checks if the browser is capable to perform AR processing */ checkCompatibility(): boolean; protected _createProcessor(): VideoProcessor; } /** Banuba WebAR processor for Agora RTC */ declare class VideoProcessor extends VideoProcessor$1 { private readonly _player; private readonly _output; name: string; constructor(opts: VideoProcessorOptions); protected onTrack(track: MediaStreamTrack, ctx: IProcessorContext): Promise; protected onEnableChange(): Promise; /** * Adds AR modules from URL * @example * ```ts * // This is a syntax sugar over * // import { Module } from "@banuba/webar" * // const face_tracker = new Module("/path/to/face_tracker.zip") * // await processor.addModule(face_tracker) * * await processor.addModule("/path/to/face_tracker.zip") * ``` */ addModule(...urls: string[]): ReturnType; /** * Adds @banuba/webar Module to the processor * * See {@link https://docs.banuba.com/face-ar-sdk-v1/generated/typedoc/classes/Module.html} for more details. * @example * ```ts * import { Module } from "@banuba/webar" * * const face_tracker = new Module("/path/to/face_tracker.zip") * * await processor.addModule(face_tracker) * ``` */ addModule(...modules: Parameters): ReturnType; /** * Applies AR effect from URL * @example s */ applyEffect(url: string): ReturnType; /** * Applies `@banuba/webar`'s Effect * * See {@link https://docs.banuba.com/face-ar-sdk-v1/generated/typedoc/classes/Effect.html} for more details. * @example * ```ts * import { Effect } from "@banuba/webar" * * const octopus = new Effect("/path/to/Octopus.zip") * * await processor.applyEffect(octopus) * ``` */ applyEffect(effect: Parameters[0]): ReturnType; /** Clears effect applied to the processor */ clearEffect(): Promise; /** Destroys the processor, clears all the resources used */ destroy(): Promise; } export { Extension, Extension as default };