Type alias ClientboundNotification

ClientboundNotification: {
    type: "Bulk";
    v: ClientboundNotification[];
} | {
    data: number;
    type: "Ping";
} | {
    data: number;
    type: "Pong";
} | {
    type: "Error";
} & WebSocketError | {
    type: "Authenticated";
} | ReadyPacket | {
    type: "Message";
} & API.Message | {
    channel: string;
    data: Partial<API.Message>;
    id: string;
    type: "MessageUpdate";
} | {
    append: Pick<Partial<API.Message>, "embeds">;
    channel: string;
    id: string;
    type: "MessageAppend";
} | {
    channel: string;
    id: string;
    type: "MessageDelete";
} | {
    channel_id: string;
    emoji_id: string;
    id: string;
    type: "MessageReact";
    user_id: string;
} | {
    channel_id: string;
    emoji_id: string;
    id: string;
    type: "MessageUnreact";
    user_id: string;
} | {
    channel_id: string;
    emoji_id: string;
    id: string;
    type: "MessageRemoveReaction";
} | {
    channel: string;
    ids: string[];
    type: "BulkMessageDelete";
} | {
    type: "ChannelCreate";
} & API.Channel | {
    clear?: FieldsChannel[];
    data: Partial<API.Channel>;
    id: string;
    type: "ChannelUpdate";
} | {
    id: string;
    type: "ChannelDelete";
} | {
    id: string;
    type: "ChannelGroupJoin";
    user: string;
} | {
    id: string;
    type: "ChannelGroupLeave";
    user: string;
} | {
    id: string;
    type: "ChannelStartTyping";
    user: string;
} | {
    id: string;
    type: "ChannelStopTyping";
    user: string;
} | {
    id: string;
    message_id: string;
    type: "ChannelAck";
    user: string;
} | {
    channels: API.Channel[];
    id: string;
    server: API.Server;
    type: "ServerCreate";
} | {
    clear?: FieldsServer[];
    data: Partial<API.Server>;
    id: string;
    type: "ServerUpdate";
} | {
    id: string;
    type: "ServerDelete";
} | {
    clear?: FieldsMember[];
    data: Partial<API.Member>;
    id: MemberCompositeKey;
    type: "ServerMemberUpdate";
} | {
    id: string;
    type: "ServerMemberJoin";
    user: string;
} | {
    id: string;
    type: "ServerMemberLeave";
    user: string;
} | {
    data: Partial<API.Role>;
    id: string;
    role_id: string;
    type: "ServerRoleUpdate";
} | {
    id: string;
    role_id: string;
    type: "ServerRoleDelete";
} | {
    clear?: FieldsUser[];
    data: Partial<API.User>;
    id: string;
    type: "UserUpdate";
} | {
    status: API.RelationshipStatus;
    type: "UserRelationship";
    user: API.User;
} | {
    id: string;
    online: boolean;
    type: "UserPresence";
} | {
    id: string;
    type: "UserSettingsUpdate";
    update: {
        [key: string]: [number, string];
    };
} | {
    type: "EmojiCreate";
} & API.Emoji | {
    id: string;
    type: "EmojiDelete";
}

Packets that come from the server.