import { AgoraConfig } from '../../../agora/config';
import { AcquireResourceReq } from '../api/req/acquireResource';
import { StartResourceReq } from '../api/req/startResource';
import { StopResourceReq } from '../api/req/stopResource';
import { UpdateLayoutResourceReq } from '../api/req/updateLayoutResource';
import { UpdateResourceReq } from '../api/req/updateResource';
import { AcquireResourceRes } from '../api/res/acquireResource';
import { QueryResourceRes } from '../api/res/queryResource';
import { StartResourceRes } from '../api/res/startResource';
import { StopResourceRes } from '../api/res/stopResource';
import { UpdateLayoutResourceRes } from '../api/res/updateLayoutResource';
import { UpdateResourceRes } from '../api/res/updateResource';
import { IndividualScenarioClient } from '../scenario/individual/client';
import { MixScenarioClient } from '../scenario/mix/client';
import { WebScenarioClient } from '../scenario/web/client';
import { RecordingMode } from '../types';
export declare class CloudRecordingClient {
    private readonly api;
    private readonly config;
    private readonly individualScenarioClient;
    private readonly webScenarioClient;
    private readonly mixScenarioClient;
    constructor(config: AgoraConfig);
    acquire(req: AcquireResourceReq): Promise<AcquireResourceRes>;
    start(resourceId: string, mode: RecordingMode, req: StartResourceReq): Promise<StartResourceRes>;
    query(resourceId: string, sid: string, mode: RecordingMode): Promise<QueryResourceRes>;
    update(resourceId: string, sid: string, mode: RecordingMode, req: UpdateResourceReq): Promise<UpdateResourceRes>;
    updateLayout(resourceId: string, sid: string, mode: RecordingMode, req: UpdateLayoutResourceReq): Promise<UpdateLayoutResourceRes>;
    stop(resourceId: string, sid: string, mode: RecordingMode, req: StopResourceReq): Promise<StopResourceRes>;
    individualScenario(): IndividualScenarioClient;
    webScenario(): WebScenarioClient;
    mixScenario(): MixScenarioClient;
}
