import { OnInit, OnChanges, SimpleChanges } from '@angular/core'; import { Participant, ShowAlert } from '../../../@types/types'; import { Socket } from 'socket.io-client'; import { UpdateParticipantPermission, PermissionLevel } from '../../../methods/permissions-methods/update-participant-permission.service'; import { BulkUpdateParticipantPermissions } from '../../../methods/permissions-methods/bulk-update-participant-permissions.service'; import { UpdatePermissionConfig, PermissionConfig, PermissionCapabilities } from '../../../methods/permissions-methods/update-permission-config.service'; import * as i0 from "@angular/core"; export interface PermissionsModalParameters { participants: Participant[]; member: string; islevel: string; socket: Socket; roomName: string; showAlert?: ShowAlert; permissionConfig?: PermissionConfig; updatePermissionConfig?: (config: PermissionConfig) => void; getUpdatedAllParams: () => PermissionsModalParameters; audioSetting?: string; videoSetting?: string; screenshareSetting?: string; chatSetting?: string; } type PermissionValue = PermissionCapabilities[keyof PermissionCapabilities]; export declare class PermissionsModalComponent implements OnInit, OnChanges { private updateParticipantPermissionService; private bulkUpdateParticipantPermissionsService; private updatePermissionConfigService; isPermissionsModalVisible: boolean; onPermissionsClose: () => void; parameters: PermissionsModalParameters; backgroundColor: string; position: string; faTimes: import("@fortawesome/fontawesome-common-types").IconDefinition; faUserShield: import("@fortawesome/fontawesome-common-types").IconDefinition; faUsers: import("@fortawesome/fontawesome-common-types").IconDefinition; faCog: import("@fortawesome/fontawesome-common-types").IconDefinition; faChevronUp: import("@fortawesome/fontawesome-common-types").IconDefinition; faChevronDown: import("@fortawesome/fontawesome-common-types").IconDefinition; faCheck: import("@fortawesome/fontawesome-common-types").IconDefinition; faClock: import("@fortawesome/fontawesome-common-types").IconDefinition; faBan: import("@fortawesome/fontawesome-common-types").IconDefinition; faMicrophone: import("@fortawesome/fontawesome-common-types").IconDefinition; faVideo: import("@fortawesome/fontawesome-common-types").IconDefinition; faDesktop: import("@fortawesome/fontawesome-common-types").IconDefinition; faComment: import("@fortawesome/fontawesome-common-types").IconDefinition; activeTab: 'users' | 'config'; searchFilter: string; selectedParticipants: Set; expandedLevel: 'level0' | 'level1' | null; localConfig: PermissionConfig; participantsState: Participant[]; constructor(updateParticipantPermissionService: UpdateParticipantPermission, bulkUpdateParticipantPermissionsService: BulkUpdateParticipantPermissions, updatePermissionConfigService: UpdatePermissionConfig); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; computeInitialConfig(): PermissionConfig; updateStateFromParams(): void; get isHost(): boolean; get filteredParticipants(): Participant[]; get participantsByLevel(): { '1': Participant[]; '0': Participant[]; }; getLevelLabel(level: '1' | '0'): string; getLevelColor(level: '1' | '0'): string; hasSelected(participantName: string): boolean; handleParticipantSelect(participantName: string): void; handleSelectAll(): void; handleBulkUpdate(newLevel: PermissionLevel): Promise; handleSingleUpdate(participant: Participant, newLevel: PermissionLevel): Promise; handleConfigChange(level: 'level0' | 'level1', capability: keyof PermissionCapabilities, value: PermissionValue): void; handleSaveConfig(): Promise; toggleLevelConfig(level: 'level0' | 'level1'): void; levels: ('1' | '0')[]; configLevels: ('level0' | 'level1')[]; capabilities: (keyof PermissionCapabilities)[]; readonly chatOptions: PermissionCapabilities['useChat'][]; readonly standardOptions: PermissionCapabilities['useMic'][]; getParticipantsForLevel(level: '1' | '0'): Participant[]; getConfigValue(level: 'level0' | 'level1', capability: keyof PermissionCapabilities): PermissionValue; isSelectedConfigOption(level: 'level0' | 'level1', capability: keyof PermissionCapabilities, value: PermissionValue): boolean; getCapabilityIcon(capability: keyof PermissionCapabilities): import("@fortawesome/fontawesome-common-types").IconDefinition; getCapabilityName(capability: keyof PermissionCapabilities): "Chat" | "Screen Share" | "Microphone" | "Camera"; getStatusIcon(status: string): import("@fortawesome/fontawesome-common-types").IconDefinition; getStatusColor(status: string): "#ef4444" | "#f59e0b" | "#22c55e"; getOptionsForCapability(capability: keyof PermissionCapabilities): readonly PermissionValue[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};