import type { DiscordChannel, DiscordGuild, DiscordMessage } from "./types.js"; export declare function discordChannelUrl(guildId: string, channelId: string): string; export declare function discordMessageUrl(guildId: string, channelId: string, messageId: string): string; export declare function normalizeGuild(guild: DiscordGuild): { features: string[]; id: string; name: string; owner: boolean; permissions: string | null; }; export declare function normalizeChannel(channel: DiscordChannel): { appliedTagIds: string[]; availableTags: { emojiId: string | null; emojiName: string | null; id: string; moderated: boolean; name: string; }[]; defaultAutoArchiveDuration: number | null; defaultForumLayout: number | null; defaultReaction: { emojiId: string | null; emojiName: string | null; } | null; defaultSortOrder: number | null; flags: number; guildId: string | null; id: string; lastMessageId: string | null; memberCount: number | null; messageCount: number | null; name: string | null; nsfw: boolean; ownerId: string | null; parentId: string | null; permissionOverwriteCount: number | null; position: number | null; rateLimitPerUser: number | null; thread: { archiveTimestamp: string | null; archived: boolean; autoArchiveDuration: number | null; createTimestamp: string | null; invitable: boolean | null; locked: boolean; } | null; topic: string | null; totalMessageSent: number | null; type: number; typeName: "announcement-thread" | "dm" | "group-dm" | "guild-announcement" | "guild-category" | "guild-directory" | "guild-forum" | "guild-media" | "guild-stage-voice" | "guild-text" | "guild-voice" | "private-thread" | "public-thread"; url: string | null; }; export declare function normalizeMessage(message: DiscordMessage, fallbackGuildId?: string): { attachments: { contentType: string | null; description: string | null; filename: string; height: number | null; id: string; size: number; width: number | null; }[]; author: { bot: boolean; globalName: string | null; id: string; username: string; }; channelId: string; components: unknown[]; content: string; editedTimestamp: string | null; embeds: unknown[]; flags: number; forwardedSnapshotCount: number; forwardedSnapshotRedacted: boolean; guildId: string | null; id: string; jumpUrl: string | null; mentionEveryone: boolean; mentionRoleIds: string[]; mentions: { bot: boolean; globalName: string | null; id: string; username: string; }[]; messageReference: { channelId: string | null; guildId: string | null; messageId: string | null; type: number | null; } | null; pinned: boolean; reactions: import("./types.js").DiscordReaction[]; referencedMessageId: string | null; timestamp: string; tts: boolean; type: number; }; export declare function normalizeSearchMessage(message: DiscordMessage, guildId: string): { attachmentCount: number; attachments: { contentType: string | null; filename: string; id: string; size: number; }[]; author: { bot: boolean; globalName: string | null; id: string; username: string; }; channelId: string; componentCount: number; content: string; editedTimestamp: string | null; embedCount: number; flags: number; guildId: string; id: string; jumpUrl: string; mentionEveryone: boolean; pinned: boolean; timestamp: string; type: number; }; export declare function deletionSnapshot(message: DiscordMessage): { attachments: { contentType: string | null; description: string | null; filename: string; id: string; size: number; }[]; authorId: string; channelId: string; components: unknown[]; content: string; editedTimestamp: string | null; embeds: unknown[]; flags: number; guildId: string | null; id: string; timestamp: string; type: number; }; export declare function deletionPreview(message: DiscordMessage): { attachmentFilenames: string[]; author: { bot: boolean; globalName: string | null; id: string; username: string; }; contentLength: number; contentPreview: string; editedTimestamp: string | null; id: string; timestamp: string; truncated: boolean; }; export declare function stableString(value: unknown): string; //# sourceMappingURL=normalize.d.ts.map