import { TRTCPluginType, TRTCVideoProcessPluginOptions, TRTCMediaEncryptDecryptPluginOptions, TRTCAudioProcessPluginOptions, TRTCPluginInfo } from "../../trtc_define";
declare const NodeTRTCEngine: any;
/**
 * TRTC 插件
 */
export declare class TRTCPlugin {
    private logPrefix;
    private pluginId;
    private device_id;
    private nativeVideoEffectPlugin;
    constructor(pluginId: string, deviceId: string, nativeVideoEffectPlugin: typeof NodeTRTCEngine.NodeRemoteVideoPlugin);
    get deviceId(): string;
    get id(): string;
    enable(flag?: boolean): void;
    /**
     * @deprecated
     */
    disable(): void;
    setParameter(param: string): void;
}
/**
 * TRTC 插件管理器
 */
export declare class TRTCPluginManager {
    private logPrefix;
    private isIPCMode;
    private nodePluginManager;
    private videoProcessBufferType;
    private videoProcessPixelFormat;
    constructor(options: {
        isIPCMode: boolean;
        nodeTRTCCloud: typeof NodeTRTCEngine.TRTCCloud | typeof NodeTRTCEngine.RemoteTRTCCloud;
    });
    destroy(): void;
    setPluginParams(type: TRTCPluginType, options: TRTCVideoProcessPluginOptions | TRTCMediaEncryptDecryptPluginOptions | TRTCAudioProcessPluginOptions): void;
    private _setVideoProcessPluginParams;
    private _setMediaEncryptDecryptPluginParams;
    private _setAudioProcessPluginParams;
    addPlugin(options: {
        id: string;
        path: string;
        type?: TRTCPluginType;
        deviceId?: string;
    }): TRTCPluginInfo;
    private _createPlugin;
    removePlugin(pluginId: string, deviceId: string): void;
    setCallback(callback: (pluginId: string, error: number, errorMessage: string) => void): void;
    /**
     * @deprecated
     */
    getPluginList(): TRTCPluginInfo[] | null;
}
export default TRTCPluginManager;
