import { AgoraRteScene } from '../../imports';
import { FcrTargetUserType } from '../privilege-control/type';
import { FcrApplicationControl, FcrApplicationObserver, FcrApplicationParams } from './type';
import { FcrCoreServiceApi } from '../../service/api';
import { FcrSharedCache } from '../shared-cache';
import { FcrUserInfo } from '../../type';
export declare class FcrApplicationControlImpl implements FcrApplicationControl {
    private _scene;
    private _api;
    private _sharedCache;
    constructor(_scene: AgoraRteScene, _api: FcrCoreServiceApi, _sharedCache: FcrSharedCache);
    startApplicatioByRole(params: FcrApplicationParams, targetRoles: FcrTargetUserType[]): Promise<void>;
    cancelApplication(applicationKey: string, cause?: Record<string, any>): Promise<void>;
    acceptApplicationByUserId(applicationKey: string, targetUserIds: string[], cause?: Record<string, any>): Promise<void>;
    acceptAllApplication(applicationKey: string, cause?: Record<string, any>): Promise<void>;
    rejectApplicationByUserId(applicationKey: string, targetUserIds: string[], cause?: Record<string, any>): Promise<void>;
    rejectAllApplication(applicationKey: string, cause?: Map<string, any>): Promise<void>;
    getApplicationUserList(applicationKey: string): FcrUserInfo[] | undefined;
    addObserver(observer: FcrApplicationObserver): void;
    removeObserver(observer: FcrApplicationObserver): void;
    private _getApiCommonParams;
    private _getApproveTargetCondition;
    private _getRemoveApplicationUserIdCondition;
    private _getApplicationCancelledReason;
    private _handleApplicationReceivedEvent;
    private _handleApplicationCancelledEvent;
    private _handleApplicationAcceptedEvent;
    private _handleApplicationRejectedEvent;
    private _handleApplicationUserListAddedEvent;
    private _handleApplicationUserListRemovedEvent;
    private _addLogObserver;
}
