import { AttachmentType } from "../Attachments"; import { ChannelType, Timestamp } from "../Types"; /** Plaform's own ID (e.g: a Discord Snowflake) */ export type RawID = string | number; /** Guild interface produced by parsers */ export interface PGuild { id: RawID; name: string; avatar?: string; } /** Channel interface produced by parsers */ export interface PChannel { id: RawID; guildId: RawID; name: string; type: ChannelType; avatar?: string; } /** Author interface produced by parsers */ export interface PAuthor { id: RawID; name: string; bot: boolean; avatar?: string; } /** Message interface produced by parsers */ export interface PMessage { id: RawID; authorId: RawID; channelId: RawID; timestamp: Timestamp; timestampEdit?: Timestamp; replyTo?: RawID; textContent?: string; attachments?: AttachmentType[]; reactions?: [PEmoji, number][]; } /** Call interface produced by parsers */ export interface PCall { id: RawID; authorId: RawID; channelId: RawID; timestampStart: Timestamp; timestampEnd: Timestamp; } /** Emoji interface produced by parsers */ export interface PEmoji { id?: RawID; text: string; }