/** @module AnnouncementChannel */ import TextableChannel from "./TextableChannel"; import type TextChannel from "./TextChannel"; import type CategoryChannel from "./CategoryChannel"; import AnnouncementThreadChannel from "./AnnouncementThreadChannel"; import type Message from "./Message"; import type { ChannelTypes } from "../Constants"; import type Client from "../Client"; import type { EditGuildChannelOptions, RawAnnouncementChannel, RawAnnouncementThreadChannel } from "../types/channels"; import type { JSONAnnouncementChannel } from "../types/json"; import TypedCollection from "../util/TypedCollection"; /** Represents a guild announcement channel. */ export default class AnnouncementChannel extends TextableChannel { /** The amount of seconds between non-moderators sending messages. Always zero in announcement channels. */ rateLimitPerUser: 0; /** The threads in this channel. */ threads: TypedCollection; type: ChannelTypes.GUILD_ANNOUNCEMENT; constructor(data: RawAnnouncementChannel, client: Client); get parent(): CategoryChannel | null | undefined; /** * Convert this announcement channel to a text channel. */ convert(): Promise; /** * Crosspost a message in this channel. * @param messageID The ID of the message to crosspost. */ crosspostMessage(messageID: string): Promise>; /** * Edit this channel. * @param options The options for editing the channel. */ edit(options: EditGuildChannelOptions): Promise; toJSON(): JSONAnnouncementChannel; }