import { type DiscordPermissionName } from "./permissions.js"; import type { DiscordApplication } from "./types.js"; export type ApplicationIntentStatus = "disabled" | "enabled" | "unknown"; export type ApplicationFlagEvidenceSource = "flags" | "flags-new"; export interface ApplicationFlagEvidence { source: ApplicationFlagEvidenceSource; value: bigint; } export type ApplicationConnectorFit = "blocked" | "compatible" | "degraded" | "not-required" | "unknown" | "unnecessary"; export type ApplicationMessageContentRequirement = "not-required" | "recommended" | "required"; export type ApplicationPostureFindingSeverity = "blocker" | "warning"; export type ApplicationPostureFindingCode = "administrator-default-permissions" | "bot-public" | "custom-install-url" | "event-webhooks-enabled" | "guild-install-unsupported" | "interaction-delivery-conflict" | "oauth-code-grant-required" | "presence-intent-enabled" | "recommended-message-content-intent-disabled" | "required-guild-members-intent-disabled" | "required-message-content-intent-disabled" | "unknown-install-contexts" | "unknown-install-permissions" | "unknown-required-intent-state"; export interface ApplicationPostureRequirements { guildMembersIntentRequired: boolean; messageContentIntent: ApplicationMessageContentRequirement; nativeInteractionIngressRequired: boolean; } export interface ApplicationInstallDefaults { administrator: boolean; applicationCommandsScope: boolean; botScope: boolean; permissionNames: DiscordPermissionName[]; unknownFieldCount: number; unknownPermissionBitCount: number; unknownScopeCount: number; } export interface ApplicationInstallContextPosture { defaultAuthorization: ApplicationInstallDefaults | null; supported: boolean | null; unknownFieldCount: number; } export interface ApplicationPostureFinding { action: string; code: ApplicationPostureFindingCode; severity: ApplicationPostureFindingSeverity; summary: string; } export interface ApplicationPostureResult { access: { botPublic: boolean; botRequiresCodeGrant: boolean; }; applicationFlags: { unknownBitCount: number | null; verificationPendingGuildLimit: boolean | null; }; applicationId: string; botId: string; connectorFit: { callbackFreeGuildInstall: ApplicationConnectorFit; guildMembersIntent: ApplicationConnectorFit; messageContentIntent: ApplicationConnectorFit; nativeInteractionIngress: ApplicationConnectorFit; presenceIntent: ApplicationConnectorFit; }; eventWebhooks: { endpointConfigured: boolean; status: "disabled" | "disabled-by-discord" | "enabled" | "not-reported" | "unknown"; subscriptionTypeCount: number | null; }; findingCounts: { blockers: number; warnings: number; }; findings: ApplicationPostureFinding[]; installation: { contextsReported: boolean; customInstallUrlConfigured: boolean; guild: ApplicationInstallContextPosture; legacyDefaults: ApplicationInstallDefaults | null; redirectUriCount: number | null; rpcOriginCount: number | null; unknownContextCount: number; user: ApplicationInstallContextPosture; }; interactions: { delivery: "gateway" | "outgoing-webhook"; endpointConfigured: boolean; }; privacy: { omitted: readonly string[]; persistence: "none"; rawPayloads: "omitted"; text: "fixed-derived-only"; unknownFields: "counts-only"; }; privilegedIntents: { guildMembers: ApplicationIntentStatus; messageContent: ApplicationIntentStatus; presence: ApplicationIntentStatus; }; roleConnections: { verificationEndpointConfigured: boolean; }; schemaVersion: number; status: "ok"; unknownEnumCount: number; unknownFieldCount: number; } export declare function projectApplicationFlagEvidence(application: DiscordApplication): ApplicationFlagEvidence | null; export declare function projectApplicationPrivilegedIntents(application: DiscordApplication): ApplicationPostureResult["privilegedIntents"]; export declare function projectApplicationPosture(application: DiscordApplication, botId: string, requirements: ApplicationPostureRequirements): ApplicationPostureResult; //# sourceMappingURL=application-posture.d.ts.map