import {Registry} from "tc-shared/events"; import {PrivateConversationUIEvents} from "tc-shared/ui/frames/side/PrivateConversationDefinitions"; import {ClientInfoEvents} from "tc-shared/ui/frames/side/ClientInfoDefinitions"; import {SideHeaderEvents} from "tc-shared/ui/frames/side/HeaderDefinitions"; import {ChannelBarUiEvents} from "tc-shared/ui/frames/side/ChannelBarDefinitions"; import {MusicBotUiEvents} from "tc-shared/ui/frames/side/MusicBotDefinitions"; import {MusicPlaylistUiEvents} from "tc-shared/ui/frames/side/MusicPlaylistDefinitions"; /* TODO: Somehow outsource the event registries to IPC? */ export type SideBarType = "none" | "channel" | "private-chat" | "client-info" | "music-manage"; export interface SideBarTypeData { "none": {}, "channel": { events: Registry }, "private-chat": { events: Registry, handlerId: string }, "client-info": { events: Registry, }, "music-manage": { botEvents: Registry, playlistEvents: Registry } } export type SideBarNotifyContentData = { content: T, data: SideBarTypeData[T] } export interface SideBarEvents { query_content: {}, query_content_data: { content: SideBarType }, query_header_data: {}, notify_content: { content: SideBarType }, notify_content_data: SideBarNotifyContentData, notify_header_data: { events: Registry } }