export declare type PermissionEditorTab = "groups-server" | "groups-channel" | "channel" | "client" | "client-channel"; export declare type PermissionEditorSubject = "groups-server" | "groups-channel" | "channel" | "client" | "client-channel" | "none"; export declare type GroupProperties = { id: number; type: "query" | "template" | "normal"; name: string; iconId: number; sortId: number; saveDB: boolean; needed_modify_power: number; needed_member_add: number; needed_member_remove: number; }; export declare type GroupUpdateEntry = { property: "name" | "icon" | "sort" | "save"; value: any; }; export declare type ChannelInfo = { id: number; iconId: number; name: string; depth: number; }; export interface PermissionModalEvents { action_activate_tab: { tab: PermissionEditorTab; activeGroupId?: number; activeChannelId?: number; activeClientDatabaseId?: number; }; action_select_group: { target: "server" | "channel"; id: number; }; action_select_channel: { target: "channel" | "client-channel"; id: number; }; action_select_client: { target: "client" | "client-channel"; id: number | string | undefined; }; action_set_permission_editor_subject: { mode: PermissionEditorSubject | undefined; groupId?: number; channelId?: number; clientDatabaseId?: number; }; action_create_group: { target: "server" | "channel"; sourceGroup?: number; }; action_rename_group: { target: "server" | "channel"; id: number | "selected"; newName: string; }; action_rename_group_result: { target: "server" | "channel"; id: number; status: "success" | "error"; error?: string; }; action_delete_group: { target: "server" | "channel"; id: number | "selected"; mode: "ask" | "force"; }; action_delete_group_result: { target: "server" | "channel"; id: number; status: "success" | "error"; error?: string; }; action_group_copy_permissions: { target: "server" | "channel"; sourceGroup: number; }; action_server_group_add_client: { id: number; client: number | string; }; action_server_group_add_client_result: { id: number; client: number | string; status: "success" | "error" | "no-permissions"; error?: string; }; action_server_group_remove_client: { id: number; client: number; }; action_server_group_remove_client_result: { id: number; client: number; status: "success" | "error" | "no-permissions"; error?: string; }; query_groups: { target: "server" | "channel"; }; query_group_clients: { id: number; }; query_channels: {}; query_client_permissions: {}; query_client_info: { client: number | string; }; notify_channels: { channels: ChannelInfo[]; }; notify_client_info: { client: number | string; state: "success" | "error" | "no-such-client" | "no-permission"; error?: string; info?: { name: string; uniqueId: string; databaseId: number; }; failedPermission?: string; }; notify_group_updated: { target: "server" | "channel"; id: number; properties: GroupUpdateEntry[]; }; notify_groups_created: { target: "server" | "channel"; groups: GroupProperties[]; }; notify_groups_deleted: { target: "server" | "channel"; groups: number[]; }; notify_group_clients: { id: number; status: "success" | "error" | "no-permissions"; error?: string; clients?: { name: string; databaseId: number; uniqueId: string; }[]; }; notify_groups_reset: {}; notify_groups: { target: "server" | "channel"; groups: GroupProperties[]; }; notify_client_permissions: { permissionModifyPower: number; serverGroupCreate: boolean; channelGroupCreate: boolean; serverGroupModifyPower: number; channelGroupModifyPower: number; modifyQueryGroups: boolean; modifyTemplateGroups: boolean; serverGroupMemberAddPower: number; serverGroupMemberRemovePower: number; serverGroupPermissionList: boolean; channelGroupPermissionList: boolean; channelPermissionList: boolean; clientPermissionList: boolean; clientChannelPermissionList: boolean; }; notify_client_list_toggled: { visible: boolean; }; notify_channel_updated: { id: number; property: "name" | "icon"; value: any; }; notify_initial_rendered: {}; notify_destroy: {}; }