import { Basic } from './common/basic';
import { ResultType, eventType } from './common/data-type';
/**
 * @public
 * @class RendererController
 * @extends Basic
 */
declare class RendererController extends Basic {
    private RendererValidate;
    /**
     * @constructor
     * @param {any} obj
     */
    constructor(obj: any);
    /**
     * @public
     * @function Start
     * @returns {Promise<ResultType>}
     */
    Start(path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Restart
     * @returns {Promise<void>}
     */
    Restart(): Promise<void>;
    /**
     * @public
     * @async
     * @function Stop
     * @returns {Promise<void>}
     */
    Stop(): Promise<void>;
    /**
     * @public
     * @function StartByTaskId
     * @param {string} io
     * @param {string} taskId
     * @returns {Promise<ResultType>}
     */
    StartByTaskId(io: string, taskId: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetResolutionMultiple
     * @param {number} multiple (default value is 1)
     * @returns {Promise<ResultType>}
     */
    SetResolutionMultiple(multiple?: number): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function GetMaxFpsRequest
     * @returns {Promise<void>}
     */
    GetMaxFpsRequest(): Promise<void>;
    /**
     * @public
     * @async
     * @function SetResolution
     * @param {number} w
     * @param {number} h
     * @returns {Promise<ResultType>}
     */
    SetResolution(w: number, h: number): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetFrameRateLimit
     * @param {number} maxFPS
     * @returns {Promise<ResultType>}
     */
    SetFrameRateLimit(maxFPS: number): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetBitrate
     * @param {number} bitrate
     * @returns {Promise<ResultType>}
     */
    SetBitrate(bitrate: number): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function GetStats
     * @returns {Promise<ResultType>}
     */
    GetStats(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function RegisterErrorEvent
     * @param {Array<eventType>} events
     * @returns {Promise<void>}
     */
    RegisterErrorEvent(events: Array<eventType>): Promise<void>;
    /**
     * @public
     * @async
     * @function UnRegisterErrorEvent
     * @param {Array<string>} events
     * @returns {Promise<void>}
     */
    UnRegisterErrorEvent(events: Array<string>): Promise<void>;
    /**
     * @public
     * @async
     * @function RegisterEvent
     * @param {Array<eventType>} events
     * @returns {Promise<void>}
     */
    RegisterEvent(events: Array<eventType>): Promise<void>;
    /**
     * @public
     * @async
     * @function RegisterEvents
     * @param {Array<eventType>} events
     * @returns {Promise<void>}
     */
    RegisterEvents(events: Array<eventType>): Promise<void>;
    /**
     * @public
     * @async
     * @function UnRegisterEvent
     * @param {Array<string>} events
     * @returns {Promise<void>}
     */
    UnRegisterEvent(events: Array<string>): Promise<void>;
    /**
     * @public
     * @async
     * @function UnRegisterEvents
     * @param {Array<string>} events
     * @returns {Promise<void>}
     */
    UnRegisterEvents(events: Array<string>): Promise<void>;
    /**
     * @public
     * @async
     * @function RegisterSceneEvent
     * @param {Array<eventType>} events
     * @returns {Promise<void>}
     */
    RegisterSceneEvent(events: Array<eventType>): Promise<void>;
    /**
     * @public
     * @async
     * @function UnRegisterSceneEvent
     * @param {Array<string>} events
     * @returns {Promise<void>}
     */
    UnRegisterSceneEvent(events: Array<string>): Promise<void>;
    /**
     * @public
     * @async
     * @function RegisterSceneEvents
     * @param {Array<eventType>} events
     * @returns {Promise<void>}
     */
    RegisterSceneEvents(events: Array<eventType>): Promise<void>;
    /**
     * @public
     * @async
     * @function UnRegisterSceneEvents
     * @param {Array<string>} events
     * @returns {Promise<void>}
     */
    UnRegisterSceneEvents(events: Array<string>): Promise<void>;
    /**
     * @public
     * @async
     * @function GetRegisterSceneEvent
     * @returns {Promise<ResultType>}
     */
    GetRegisterSceneEvent(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function GetRegisterSceneEvents
     * @returns {Promise<ResultType>}
     */
    GetRegisterSceneEvents(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetRendererMode
     * @param {string} mode
     * @param {Array<number>} resolution (optional)
     * @returns {Promise<void>}
     */
    SetRendererMode(mode: string, resolution?: Array<number>): Promise<void>;
    /**
     * @public
     * @async
     * @function GetSnapshot
     * @param {Array<number>} resolution
     * @param {number} quolity (optional) default value is 1
     * @returns {Promise<string | null>}
     */
    GetSnapshot(resolution: Array<number>, quolity?: number): Promise<ResultType>;
}
export default RendererController;
