import { Store } from './store';
import { DeviceManager } from '../device-manager';
import { HMSRole } from '../interfaces';
import InitialSettings from '../interfaces/settings';
import { HMSUpdateListener } from '../interfaces/update-listener';
import HMSTransport from '../transport';
export default class RoleChangeManager {
    private store;
    private transport;
    private deviceManager;
    private publish;
    private removeAuxiliaryTrack;
    private listener?;
    constructor(store: Store, transport: HMSTransport, deviceManager: DeviceManager, publish: (settings: InitialSettings) => Promise<void>, removeAuxiliaryTrack: (trackId: string) => void, listener?: HMSUpdateListener | undefined);
    handleLocalPeerRoleUpdate: ({ oldRole, newRole }: {
        oldRole: HMSRole;
        newRole: HMSRole;
    }) => Promise<void>;
    diffRolesAndPublishTracks: ({ oldRole, newRole }: {
        oldRole: HMSRole;
        newRole: HMSRole;
    }) => Promise<void>;
    private syncDevices;
    private removeVideoTracks;
    private removeAudioTrack;
    private removeScreenTracks;
    private removeAuxTracks;
    private removeTrack;
    private hasSimulcastDifference;
    private getSettings;
    private getMutedStatus;
    private getAudioDeviceSettings;
    private getVideoInputDeviceId;
}
