import type { ReactElement } from "react"; import type { APIChannel, APIEmbedImage, APIGuild, APIGuildMember, APIRole, APIUser, Snowflake } from "discord-api-types/v10"; import type { SvgConfig } from "./svgs"; import type { Tag } from "../ChatTag/style"; import type { APIAttachment } from "discord-api-types/v10"; import type { UserAvatar } from "../utils/getAvatar"; import type { ChatMessage } from "../types"; export type PartialSvgConfig = Partial; export interface MessageButtonListOption { onClick: () => void; icon: keyof SC; actionDescription: string; } export interface ChatBadgeProps { user: APIUser; TagWrapper: typeof Tag; } export declare enum MessageTypeResponse { InAppError = 0, ConsoleError = 1, None = 2 } export type Config = { svgUrls?: SvgConfig; automodAvatar: { still: string; animated: string; }; messageButtons(message: ChatMessage): MessageButtonListOption[]; resolveRole(id: Snowflake): APIRole | null; resolveChannel(id: Snowflake): APIChannel | null; resolveMember(user: APIUser, guildId: Snowflake): APIGuildMember | null; resolveGuild(id: Snowflake): APIGuild | null; resolveUser(id: Snowflake): APIUser | null; chatBadge?({ user, TagWrapper }: ChatBadgeProps): ReactElement | null; avatarUrlOverride?(user: APIUser): UserAvatar | null; /** * Replaces the fallback rendered when a user has no avatar OR when their * primary avatar URL fails to load. When omitted, the renderer falls back * to Discord's hardcoded default avatars at * `cdn.discordapp.com/embed/avatars/N.png`. */ defaultAvatar?(user: APIUser): UserAvatar; themeOverrideClassName?: string; unknownMessageTypeResponse?: MessageTypeResponse; currentUser(): APIUser | null; seeThreadOnClick?(messageId: Snowflake, thread: APIChannel): void; userOnClick?(user: APIUser, element: EventTarget & HTMLSpanElement): void; roleMentionOnClick?(role: APIRole): void; channelMentionOnClick?(channel: APIChannel): void; openPinnedMessagesOnClick?(channel: APIChannel): void; messageComponentButtonOnClick?(message: ChatMessage, customId: string): void; attachmentImageOnClick?(image: APIAttachment): void; embedImageOnClick?(image: APIEmbedImage): void; externalLinkOpenRequested?(url: string): void; }; export declare const ConfigContext: import("react").Context>>; export declare function useConfig(): Config>; //# sourceMappingURL=ConfigContext.d.ts.map