import type { Snowflake } from "./index"; export declare const adaptorChannelTypesMap: { readonly 0: "guildText"; readonly 1: "dm"; readonly 2: "guildVoice"; readonly 3: "groupDm"; readonly 4: "guildCategory"; readonly 5: "guildAnnouncement"; readonly 10: "announcementThread"; readonly 11: "publicThread"; readonly 12: "privateThread"; readonly 13: "guildStageVoice"; readonly 14: "guildDirectory"; readonly 15: "guildForum"; }; export declare const channelTypesMap: import("../../util/reverseRecord").ReversedRecord<{ readonly 0: "guildText"; readonly 1: "dm"; readonly 2: "guildVoice"; readonly 3: "groupDm"; readonly 4: "guildCategory"; readonly 5: "guildAnnouncement"; readonly 10: "announcementThread"; readonly 11: "publicThread"; readonly 12: "privateThread"; readonly 13: "guildStageVoice"; readonly 14: "guildDirectory"; readonly 15: "guildForum"; }>; export type AdaptorTypeSpecifiedChannel = { guildText: Omit & { type: "guildText"; }; dm: Omit & { type: "dm"; }; guildVoice: Omit & { type: "guildVoice"; }; groupDm: Omit & { type: "groupDm"; }; guildCategory: Omit & { type: "guildCategory"; }; guildAnnouncement: Omit & { type: "guildAnnouncement"; }; announcementThread: Omit & { type: "announcementThread"; }; publicThread: Omit & { type: "publicThread"; }; privateThread: Omit & { type: "privateThread"; }; guildStageVoice: Omit & { type: "guildStageVoice"; }; guildDirectory: Omit & { type: "guildDirectory"; }; guildForum: Omit & { type: "guildForum"; }; }[T]; /** * @see adaptorChannelTypesMap * @see https://discord.com/developers/docs/resources/channel#channel-object-channel-types */ export type AdaptorChannelTypes = (typeof adaptorChannelTypesMap)[keyof typeof adaptorChannelTypesMap]; /** * Partial Channel objects only have id, name, type and permissions fields. * * Threads will also have thread_metadata and parent_id fields. * * @see https://discord.com/developers/docs/resources/channel#channel-object-channel-structure */ export type AdaptorPartialChannel = AdaptorPartialNonThreadChannel | AdaptorPartialThreadChannel; export type AdaptorPartialNonThreadChannel = { type: Exclude; } & AdaptorPartialChannelBase; export type AdaptorPartialThreadChannel = { type: Extract; } & AdaptorPartialThreadChannelBase; export interface AdaptorPartialChannelBase { /** * the id of this channel */ id: Snowflake; /** * the name of the channel (1-100 characters) */ name: string | null; } export interface AdaptorPartialThreadChannelBase extends AdaptorPartialChannelBase { /** * thread-specific fields not needed by other channels */ threadMetadata: AdaptorThreadMetadata; /** * for threads: id of the text channel this thread was created */ parentId: Snowflake; } /** * @see https://discord.com/developers/docs/resources/channel#thread-metadata-object-thread-metadata-structure */ export interface AdaptorThreadMetadata { /** * whether the thread is archived */ archived: boolean; /** * duration in minutes to automatically archive the thread after recent activity, can be set to: 60, 1440, 4320, 10080 */ autoArchiveDuration: 60 | 1440 | 4320 | 10080; /** * timestamp when the thread's archive status was last changed, used for calculating recent activity */ archiveTimestamp: Date; /** * whether the thread is locked; when a thread is locked, only users with MANAGE_THREADS can unarchive it */ locked: boolean; /** * whether non-moderators can add other non-moderators to a thread; only available on private threads * * @default false (if not present) */ invitable: boolean; /** * timestamp when the thread was created; only populated for threads created after 2022-01-09 */ createdTimestamp: Date | null; } /** * @see https://discord.com/developers/docs/resources/channel#attachment-object-attachment-structure */ export interface AdaptorAttachment { /** * attachment id */ id: Snowflake; /** * name of file attached */ filename: string; /** * description for the file (max 1024 characters) */ description: string | null; /** * the attachment's media type * @see https://en.wikipedia.org/wiki/Media_type */ contentType: string | null; /** * size of file in bytes */ size: number; /** * source url of file */ url: string; /** * a proxied url of file */ proxyUrl: string; /** * height of file (if image) */ height: number | null; /** * width of file (if image) */ width: number | null; /** * whether this attachment is ephemeral * * @default false (if not present) */ ephemeral: boolean; } //# sourceMappingURL=channel.d.ts.map