import { SCHEMA_VERSION } from "./constants.js"; export declare const DISCORD_REFERENCE_LIMITS: Readonly<{ characters: 512; commandPathCharacters: 100; commandPathSegments: 3; }>; export declare const DISCORD_REFERENCE_KINDS: readonly ["application-command-mention", "channel-mention", "custom-emoji-mention", "guild-channel", "guild-message", "private-channel", "private-message", "role-mention", "user-mention"]; export type DiscordReferenceKind = typeof DISCORD_REFERENCE_KINDS[number]; export type DiscordReferencePolicyDecision = "allowed" | "blocked" | "not-applicable" | "unknown"; export type DiscordReferencePolicyStatus = "blocked" | "eligible" | "incomplete" | "not-applicable"; export type DiscordReferenceReadDecision = Exclude; export interface DiscordReferencePolicyEvaluator { channelRead(channelId: string): DiscordReferenceReadDecision; guildRead(guildId: string): DiscordReferenceReadDecision; } export interface DiscordReferencePolicyProjection { channelRead: DiscordReferencePolicyDecision; guildRead: DiscordReferencePolicyDecision; status: DiscordReferencePolicyStatus; } export interface DiscordReferencePrivacyProjection { discordAccessVerified: false; downstreamAuthorizationRequired: true; namesReturned: false; networkContacted: false; persisted: false; } interface DiscordReferenceBase { policy: DiscordReferencePolicyProjection; privacy: DiscordReferencePrivacyProjection; schemaVersion: typeof SCHEMA_VERSION; status: "parsed"; } export type DiscordReferenceResult = DiscordReferenceBase & ({ ids: { commandId: string; }; kind: "application-command-mention"; } | { ids: { channelId: string; }; kind: "channel-mention"; } | { animated: boolean; ids: { emojiId: string; }; kind: "custom-emoji-mention"; } | { ids: { channelId: string; guildId: string; }; kind: "guild-channel"; } | { ids: { channelId: string; guildId: string; messageId: string; }; kind: "guild-message"; } | { ids: { channelId: string; }; kind: "private-channel"; } | { ids: { channelId: string; messageId: string; }; kind: "private-message"; } | { ids: { roleId: string; }; kind: "role-mention"; } | { deprecatedSyntax: boolean; ids: { userId: string; }; kind: "user-mention"; }); export declare function parseDiscordReference(reference: unknown, policy: DiscordReferencePolicyEvaluator): DiscordReferenceResult; export {}; //# sourceMappingURL=discord-reference.d.ts.map