export type DiscordMentionTarget = 'user' | 'role' | 'channel'; export type DiscordQueryParams = Record; export type DiscordMentionData = { /** * - The discriminator for a mention element. */ dataType: 'mention'; /** * - The kind of entity being mentioned. */ target: DiscordMentionTarget; /** * - The snowflake identifier of the mentioned entity. */ id: string; /** * - Whether the mention uses the nickname syntax (`<@!id>`). */ isNickname: boolean; }; export type DiscordGameProfileData = { /** * - The discriminator for a game profile element. */ dataType: 'game_profile'; /** * - The snowflake identifier of the game. */ id: string; }; export type DiscordGuildNavigationTarget = 'customize' | 'browse' | 'guide' | 'linked-roles'; export type DiscordGuildNavigationData = { /** * - The discriminator for a guild navigation element. */ dataType: 'guild_navigation'; /** * - The navigation tab to open. */ target: DiscordGuildNavigationTarget; /** * - The linked role snowflake, or `null` when the tab has no role. */ roleId: string | null; }; export type DiscordEmojiData = { /** * - The discriminator for an emoji element. */ dataType: 'emoji'; /** * - The name of the emoji. */ name: string; /** * - The snowflake identifier of the emoji. */ id: string; /** * - Whether the emoji is animated. */ animated: boolean; }; export type DiscordTimestampData = { /** * - The discriminator for a timestamp element. */ dataType: 'timestamp'; /** * - The Unix timestamp, in seconds. */ timestamp: number; /** * - The formatting style flag, or an empty string when omitted. */ style: string; }; export type DiscordCommandPath = { /** * - The root command name. */ command: string; /** * - The subcommand group, or `null` when absent. */ subcommandGroup: string | null; /** * - The subcommand, or `null` when absent. */ subcommand: string | null; }; export type DiscordCommandData = { /** * - The discriminator for a command element. */ dataType: 'command'; /** * - The full command path, without the leading slash (e.g., `play music`). */ name: string; /** * - The root command name. */ command: string; /** * - The subcommand group, or `null` when absent. */ subcommandGroup: string | null; /** * - The subcommand, or `null` when absent. */ subcommand: string | null; /** * - The snowflake identifier of the command. */ id: string; }; export type DiscordInviteData = { /** * - The discriminator for an invite element. */ dataType: 'invite'; /** * - The invite code or server slug. */ code: string; /** * - The normalized host. */ host: 'discord.gg' | 'discord.com' | 'discordapp.com'; /** * - The path kind, or `null` for short links. */ kind: 'invite' | 'servers' | null; /** * - Whether the source used whitespace obfuscation. */ obfuscated: boolean; /** * - The decoded query string parameters. */ params: DiscordQueryParams; }; export type DiscordMessageLinkData = { /** * - The discriminator for a message link element. */ dataType: 'message_link'; /** * - The guild snowflake, or '@me' for direct messages. */ guildId: string; /** * - The channel snowflake. */ channelId: string; /** * - The message snowflake. */ messageId: string; /** * - The decoded query string parameters. */ params: DiscordQueryParams; }; export type DiscordCdnKind = 'attachment' | 'emoji' | 'guild_icon' | 'guild_splash' | 'guild_discovery_splash' | 'banner' | 'default_user_avatar' | 'user_avatar' | 'guild_member_avatar' | 'avatar_decoration' | 'application_icon' | 'application_asset' | 'achievement_icon' | 'store_page_asset' | 'sticker_pack_banner' | 'team_icon' | 'sticker' | 'role_icon' | 'guild_scheduled_event_cover' | 'guild_member_banner' | 'guild_tag_badge'; export type DiscordCdnSegments = { /** * - The guild snowflake, when present. */ guildId?: string; /** * - The user snowflake, when present. */ userId?: string; /** * - The channel snowflake, when present. */ channelId?: string; /** * - The attachment snowflake, when present. */ attachmentId?: string; /** * - The application snowflake, when present. */ applicationId?: string; /** * - The achievement snowflake, when present. */ achievementId?: string; /** * - The team snowflake, when present. */ teamId?: string; /** * - The scheduled event snowflake, when present. */ eventId?: string; /** * - The role snowflake, when present. */ roleId?: string; /** * - The generic snowflake (emoji, sticker, banner), when present. */ id?: string; /** * - The default avatar index, when present. */ index?: string; }; export type DiscordCdnData = { /** * - The discriminator for a CDN asset element. */ dataType: 'cdn_asset'; /** * - The category of the asset. */ kind: DiscordCdnKind; /** * - The CDN host (e.g., `cdn.discordapp.com`). */ host: string; /** * - The raw path that follows the CDN host. */ path: string; /** * - The asset hash, or the filename without its extension. */ hash: string; /** * - The file extension, without the leading dot. */ ext: string; /** * - The raw attachment filename, or `null` for non-attachments. */ filename: string | null; /** * - Whether the attachment is flagged as a spoiler. */ spoiler: boolean; /** * - The named path segments. */ segments: DiscordCdnSegments; /** * - The decoded query string parameters. */ params: DiscordQueryParams; }; export type DiscordCdnRoute = { /** * - The asset category. */ kind: DiscordCdnKind; /** * - The path template, using `:name` placeholders. */ template: string; }; /** * A parser pair for Discord mentions (`<@id>`, `<@!id>`, `<@&id>`, `<#id>`). */ export declare const DiscordMentionParser: import("../TinyUriParser.mjs").ParserPair<"mention", DiscordMentionData>; /** * A parser pair for Discord game profiles (`<@$id>`). */ export declare const DiscordGameProfileParser: import("../TinyUriParser.mjs").ParserPair<"game_profile", DiscordGameProfileData>; /** * A parser pair for Discord guild navigation (``, ``). */ export declare const DiscordGuildNavigationParser: import("../TinyUriParser.mjs").ParserPair<"guild_navigation", DiscordGuildNavigationData>; /** * A parser pair for Discord custom emojis (`<:name:id>`, ``). */ export declare const DiscordEmojiParser: import("../TinyUriParser.mjs").ParserPair<"emoji", DiscordEmojiData>; /** * A parser pair for Discord timestamps (``, ``). */ export declare const DiscordTimestampParser: import("../TinyUriParser.mjs").ParserPair<"timestamp", DiscordTimestampData>; /** * A parser pair for Discord slash commands (``). */ export declare const DiscordCommandParser: import("../TinyUriParser.mjs").ParserPair<"command", DiscordCommandData>; /** * A parser pair for Discord invite links (`discord.gg/...`, `discord.com/invite/...`, * `discord.com/servers/...`), including whitespace-obfuscated variants. */ export declare const DiscordInviteParser: import("../TinyUriParser.mjs").ParserPair<"invite", DiscordInviteData>; /** * A parser pair for Discord message links (`https://discord.com/channels/...`). */ export declare const DiscordMessageLinkParser: import("../TinyUriParser.mjs").ParserPair<"message_link", DiscordMessageLinkData>; /** * A parser pair for Discord CDN assets (`https://cdn.discordapp.com/...`). */ export declare const DiscordCdnParser: import("../TinyUriParser.mjs").ParserPair<"cdn_asset", DiscordCdnData>; /** * An array of Discord parser pairs, ordered from the most specific to the most permissive. */ export declare const DiscordProtocolParsers: readonly (import("../TinyUriParser.mjs").ParserPair<"cdn_asset", DiscordCdnData> | import("../TinyUriParser.mjs").ParserPair<"command", DiscordCommandData> | import("../TinyUriParser.mjs").ParserPair<"emoji", DiscordEmojiData> | import("../TinyUriParser.mjs").ParserPair<"game_profile", DiscordGameProfileData> | import("../TinyUriParser.mjs").ParserPair<"guild_navigation", DiscordGuildNavigationData> | import("../TinyUriParser.mjs").ParserPair<"invite", DiscordInviteData> | import("../TinyUriParser.mjs").ParserPair<"mention", DiscordMentionData> | import("../TinyUriParser.mjs").ParserPair<"message_link", DiscordMessageLinkData> | import("../TinyUriParser.mjs").ParserPair<"timestamp", DiscordTimestampData>)[]; //# sourceMappingURL=Discord.d.mts.map