import * as videoEffectsEx from '../private/videoEffectsEx';
import * as videoEffects from '../public/videoEffects';
import { VideoPerformanceMonitor } from './videoPerformanceMonitor';
/**
 * @hidden
 * Create a MediaStreamTrack from the media stream with the given streamId and processed by videoFrameHandler.
 */
export declare function processMediaStream(streamId: string, videoFrameHandler: videoEffects.VideoFrameHandler, notifyError: (string: any) => void, videoPerformanceMonitor?: VideoPerformanceMonitor): Promise<void>;
/**
 * @hidden
 * Create a MediaStreamTrack from the media stream with the given streamId and processed by videoFrameHandler.
 * The videoFrameHandler will receive metadata of the video frame.
 *
 * @internal
 * Limited to Microsoft-internal use
 */
export declare function processMediaStreamWithMetadata(streamId: string, videoFrameHandler: videoEffectsEx.VideoFrameHandler, notifyError: (string: any) => void, videoPerformanceMonitor?: VideoPerformanceMonitor): Promise<void>;
/**
 * @hidden
 * Video effect change call back function definition
 * @beta
 *
 * @internal
 * Limited to Microsoft-internal use
 */
type VideoEffectCallBack = (effectId: string | undefined, effectParam?: string) => Promise<void>;
/**
 * @hidden
 */
export declare function createEffectParameterChangeCallback(callback: VideoEffectCallBack, videoPerformanceMonitor?: VideoPerformanceMonitor): (effectId: string | undefined, effectParam?: string) => void;
export { VideoEffectCallBack as DefaultVideoEffectCallBack };
