import type { ComponentLayoutInput } from "./component-layout.js"; import { type AutoModerationActionRequest, type AutoModerationChangeRequest, type AutoModerationInventoryResult, type AutoModerationLookupResult, type AutoModerationPlan, type AutoModerationResult, type AutoModerationTriggerRequest, type AutoModerationVerificationReason, type AutoModerationVerificationResult } from "./automod-service.js"; import { type ComponentMessageContentIntentStatus, type ComponentMessagePlan, type ComponentMessageRequest, type ComponentMessageResult, type ComponentMessageVerificationReason, type ComponentMessageVerificationResult } from "./component-message-service.js"; import { type ChannelPermissionOverwriteChange, type ChannelPermissionOverwritePlan, type ChannelPermissionOverwriteRequest, type ChannelPermissionOverwriteResult } from "./channel-permission-overwrite-service.js"; import { type ChannelMetadataChangePlan, type ChannelMetadataChangeRequest, type ChannelMetadataChangeResult } from "./channel-metadata-service.js"; import { type ChannelOrderMode, type ChannelOrderingPlan, type ChannelOrderingRequest, type ChannelOrderingResult } from "./channel-ordering-service.js"; import { type GuildProfileChangePlan, type GuildProfileChangeRequest, type GuildProfileChangeResult } from "./guild-profile-service.js"; import { type GuildCommunityAuditResult, type GuildCommunityChangePlan, type GuildCommunityChangeRequest, type GuildCommunityChangeResult } from "./guild-community-service.js"; import { type GuildBlueprintManifestPreview, type GuildBlueprintPlanManifestPreview } from "./guild-blueprint-preview.js"; import { type GuildScaffoldPlan, type GuildScaffoldRequest, type GuildScaffoldResult } from "./guild-scaffold-service.js"; import { type GuildSettingsChangePlan, type GuildSettingsChangeRequest, type GuildSettingsChangeResult } from "./guild-settings-service.js"; import { type OnboardingChangePlan, type OnboardingChangeRequest, type OnboardingChangeResult } from "./onboarding-service.js"; import { type OperationReceiptStatus } from "./operation-store.js"; import type { RequestOptions } from "./types.js"; import { type RoleConfigurationPlan, type RoleConfigurationRequest, type RoleConfigurationResult } from "./role-configuration-service.js"; import { type RoleOrderingPlan, type RoleOrderingRequest, type RoleOrderingResult } from "./role-ordering-service.js"; import { type WelcomeScreenChangePlan, type WelcomeScreenChangeRequest, type WelcomeScreenChangeResult } from "./welcome-screen-service.js"; export declare const GUILD_BLUEPRINT_PHASES: readonly ["structure", "role-configuration", "role-ordering", "channel-metadata", "channel-ordering", "channel-permission-overwrite", "profile", "settings", "community", "welcome-screen", "onboarding", "auto-moderation", "publication"]; export type GuildBlueprintPhase = typeof GUILD_BLUEPRINT_PHASES[number]; export type GuildBlueprintSingletonPhase = Exclude; export type GuildBlueprintPhaseState = "blocked" | "ready" | "satisfied" | "waiting"; export declare const GUILD_BLUEPRINT_AUTOMOD_STAGES: readonly ["configure", "disable", "enable"]; export type GuildBlueprintAutoModerationStage = typeof GUILD_BLUEPRINT_AUTOMOD_STAGES[number]; export interface GuildBlueprintExactChannelReference { channelId: string; kind: "exact"; } export interface GuildBlueprintScaffoldChannelReference { key: string; kind: "scaffold"; } export type GuildBlueprintChannelReference = GuildBlueprintExactChannelReference | GuildBlueprintScaffoldChannelReference; export interface GuildBlueprintChannelOrderInput { acknowledgeReparenting?: true; channels: readonly GuildBlueprintChannelReference[]; } export interface NormalizedGuildBlueprintChannelOrderInput { acknowledgeReparenting?: true; channels: GuildBlueprintChannelReference[]; } export interface GuildBlueprintExactRoleReference { kind: "exact"; roleId: string; } export interface GuildBlueprintScaffoldRoleReference { key: string; kind: "scaffold"; } export type GuildBlueprintRoleReference = GuildBlueprintExactRoleReference | GuildBlueprintScaffoldRoleReference; export type GuildBlueprintChannelPermissionOverwriteTarget = { kind: "member"; userId: string; } | { kind: "role"; role: GuildBlueprintRoleReference; }; interface GuildBlueprintChannelPermissionOverwriteBaseInput { channelId: string; target: GuildBlueprintChannelPermissionOverwriteTarget; } export type GuildBlueprintChannelPermissionOverwriteInput = (GuildBlueprintChannelPermissionOverwriteBaseInput & { changes?: undefined; mode: "delete"; }) | (GuildBlueprintChannelPermissionOverwriteBaseInput & { changes: readonly ChannelPermissionOverwriteChange[]; mode: "update"; }); export type NormalizedGuildBlueprintChannelPermissionOverwriteInput = (GuildBlueprintChannelPermissionOverwriteBaseInput & { mode: "delete"; }) | (GuildBlueprintChannelPermissionOverwriteBaseInput & { changes: ChannelPermissionOverwriteChange[]; mode: "update"; }); export type GuildBlueprintAutoModerationActionInput = Exclude | { channel: GuildBlueprintChannelReference; type: "send-alert-message"; }; export interface GuildBlueprintAutoModerationRuleInput { actions: readonly GuildBlueprintAutoModerationActionInput[]; enabled: boolean; exemptChannels: readonly GuildBlueprintChannelReference[]; exemptRoles: readonly GuildBlueprintRoleReference[]; key: string; name: string; ruleId?: string; trigger: AutoModerationTriggerRequest; } export interface NormalizedGuildBlueprintAutoModerationRuleInput { actions: GuildBlueprintAutoModerationActionInput[]; enabled: boolean; exemptChannels: GuildBlueprintChannelReference[]; exemptRoles: GuildBlueprintRoleReference[]; key: string; name: string; ruleId?: string; trigger: AutoModerationTriggerRequest; } export type GuildBlueprintScaffoldInput = Omit; export type GuildBlueprintProfileInput = Omit; export type GuildBlueprintSettingsInput = Omit & { afkChannel?: GuildBlueprintExactChannelReference | null; systemChannel?: GuildBlueprintChannelReference | null; }; export interface GuildBlueprintCommunityInput { acknowledgeCommunityEnablement: true; publicUpdatesChannel: GuildBlueprintChannelReference; rulesChannel: GuildBlueprintChannelReference; safetyAlertsChannel: GuildBlueprintChannelReference | null; } export interface GuildBlueprintWelcomeScreenChannelInput extends Omit { channel: GuildBlueprintChannelReference; } export type GuildBlueprintWelcomeScreenInput = Omit & { channels: readonly GuildBlueprintWelcomeScreenChannelInput[]; }; export interface GuildBlueprintOnboardingOptionInput extends Omit { channels: readonly GuildBlueprintChannelReference[]; roles: readonly GuildBlueprintRoleReference[]; } export interface GuildBlueprintOnboardingPromptInput extends Omit { options: readonly GuildBlueprintOnboardingOptionInput[]; } export type GuildBlueprintOnboardingInput = Omit & { defaultChannels: readonly GuildBlueprintChannelReference[]; prompts: readonly GuildBlueprintOnboardingPromptInput[]; }; interface GuildBlueprintPublicationBaseInput { channel: GuildBlueprintChannelReference; components: readonly ComponentLayoutInput[]; key: string; notifyUserIds?: readonly string[]; } export interface GuildBlueprintCreatePublicationInput extends GuildBlueprintPublicationBaseInput { action: "create"; } export interface GuildBlueprintEditPublicationInput extends GuildBlueprintPublicationBaseInput { action: "edit"; messageId: string; } export type GuildBlueprintPublicationInput = GuildBlueprintCreatePublicationInput | GuildBlueprintEditPublicationInput; export type GuildBlueprintChannelMetadataInput = Omit; export type GuildBlueprintRoleConfigurationInput = Omit; export interface GuildBlueprintRequest { auditReason: string; autoModerationRules?: readonly GuildBlueprintAutoModerationRuleInput[]; channelMetadata?: readonly GuildBlueprintChannelMetadataInput[]; channelOrders?: readonly GuildBlueprintChannelOrderInput[]; channelPermissionOverwrites?: readonly GuildBlueprintChannelPermissionOverwriteInput[]; community?: GuildBlueprintCommunityInput; guildId: string; onboarding?: GuildBlueprintOnboardingInput; operationKey: string; profile?: GuildBlueprintProfileInput; publications?: readonly GuildBlueprintPublicationInput[]; roleConfigurations?: readonly GuildBlueprintRoleConfigurationInput[]; roleOrder?: readonly GuildBlueprintRoleReference[]; scaffold: GuildBlueprintScaffoldInput; settings?: GuildBlueprintSettingsInput; welcomeScreen?: GuildBlueprintWelcomeScreenInput; } interface NormalizedGuildBlueprintSettingsInput extends Omit { suppressedSystemNotifications?: NonNullable; } export type NormalizedGuildBlueprintPublicationInput = { channel: GuildBlueprintChannelReference; components: ComponentLayoutInput[]; key: string; notifyUserIds: string[]; } & ({ action: "create"; } | { action: "edit"; messageId: string; }); export interface NormalizedGuildBlueprintRequest { auditReason: string; autoModerationRules?: NormalizedGuildBlueprintAutoModerationRuleInput[]; channelMetadata?: GuildBlueprintChannelMetadataInput[]; channelOrders?: NormalizedGuildBlueprintChannelOrderInput[]; channelPermissionOverwrites?: NormalizedGuildBlueprintChannelPermissionOverwriteInput[]; community?: GuildBlueprintCommunityInput; guildId: string; onboarding?: GuildBlueprintOnboardingInput; operationKey: string; operationKeyHash: string; profile?: GuildBlueprintProfileInput; publications?: NormalizedGuildBlueprintPublicationInput[]; roleConfigurations?: GuildBlueprintRoleConfigurationInput[]; roleOrder?: GuildBlueprintRoleReference[]; scaffold: GuildBlueprintScaffoldInput & { stepLimit: number; }; settings?: NormalizedGuildBlueprintSettingsInput; welcomeScreen?: GuildBlueprintWelcomeScreenInput; } export interface GuildBlueprintBinding { index: number; key: string; kind: "category" | "forum" | "role" | "text"; resourceId: string; } interface GuildBlueprintPlanStepBase { nestedPlanDigest: string | null; operationKeyHash: string; state: GuildBlueprintPhaseState; writeRequired: boolean; } export interface GuildBlueprintSingletonPlanStep extends GuildBlueprintPlanStepBase { kind: GuildBlueprintSingletonPhase; } export interface GuildBlueprintPublicationPlanStep extends GuildBlueprintPlanStepBase { channelId: string | null; index: number; key: string; kind: "publication"; messageId: string | null; receiptStatus: ComponentMessageVerificationResult["receiptStatus"]; verificationReason: ComponentMessageVerificationReason | null; verificationStatus: ComponentMessageVerificationResult["status"] | null; } export interface GuildBlueprintChannelMetadataPlanStep extends GuildBlueprintPlanStepBase { channelId: string; index: number; kind: "channel-metadata"; } export interface GuildBlueprintChannelOrderingPlanStep extends GuildBlueprintPlanStepBase { anchorChannelId: string | null; channelId: string | null; index: number; kind: "channel-ordering"; mode: ChannelOrderMode | null; } export interface GuildBlueprintRoleConfigurationPlanStep extends GuildBlueprintPlanStepBase { index: number; kind: "role-configuration"; roleId: string; } export interface GuildBlueprintRoleOrderingPlanStep extends GuildBlueprintPlanStepBase { anchorRoleId: string | null; index: number; kind: "role-ordering"; roleId: string | null; } export interface GuildBlueprintChannelPermissionOverwritePlanStep extends GuildBlueprintPlanStepBase { channelId: string; index: number; kind: "channel-permission-overwrite"; targetId: string | null; targetType: "member" | "role"; } export type GuildBlueprintAutoModerationBlockerReason = AutoModerationVerificationReason | "exact-rule-missing" | "trigger-type-mismatch" | "unbound-name-collision"; export interface GuildBlueprintAutoModerationPlanStep extends GuildBlueprintPlanStepBase { index: number; key: string; kind: "auto-moderation"; receiptStatus: AutoModerationVerificationResult["receiptStatus"]; ruleId: string | null; stage: GuildBlueprintAutoModerationStage | null; verificationReason: GuildBlueprintAutoModerationBlockerReason | null; verificationStatus: AutoModerationVerificationResult["status"] | null; } export type GuildBlueprintPlanStep = GuildBlueprintAutoModerationPlanStep | GuildBlueprintChannelMetadataPlanStep | GuildBlueprintChannelOrderingPlanStep | GuildBlueprintChannelPermissionOverwritePlanStep | GuildBlueprintPublicationPlanStep | GuildBlueprintRoleConfigurationPlanStep | GuildBlueprintRoleOrderingPlanStep | GuildBlueprintSingletonPlanStep; export interface GuildBlueprintPublicationBlocker { kind: "publication"; channelId: string; index: number; messageId: string | null; operationKeyHash: string; receiptStatus: ComponentMessageVerificationResult["receiptStatus"]; verificationReason: ComponentMessageVerificationReason; verificationStatus: "blocked" | "drifted"; } export interface GuildBlueprintAutoModerationBlocker { channelId: null; index: number; kind: "auto-moderation"; messageId: null; operationKeyHash: string; receiptStatus: AutoModerationVerificationResult["receiptStatus"]; ruleId: string | null; ruleIds: string[]; stage: GuildBlueprintAutoModerationStage; verificationReason: GuildBlueprintAutoModerationBlockerReason; verificationStatus: AutoModerationVerificationResult["status"] | null; } export interface GuildBlueprintCommunityBlocker { kind: "community"; operationKeyHash: string; requiredBy: Array<"onboarding" | "welcome-screen">; verificationReason: "community-phase-required"; } export interface GuildBlueprintChannelOrderingBlocker { anchorChannelId: string; channelId: string; destinationParentChannelId: string | null; index: number; kind: "channel-ordering"; operationKeyHash: string; sourceParentChannelId: string | null; verificationReason: "reparenting-acknowledgement-required"; } export type GuildBlueprintBlocker = GuildBlueprintAutoModerationBlocker | GuildBlueprintChannelOrderingBlocker | GuildBlueprintCommunityBlocker | GuildBlueprintPublicationBlocker; export type GuildBlueprintFrontier = { index: number; key: string; kind: "auto-moderation"; plan: AutoModerationPlan; stage: GuildBlueprintAutoModerationStage; writeRequired: true; } | { channelId: string; index: number; kind: "channel-metadata"; plan: ChannelMetadataChangePlan; writeRequired: true; } | { anchorChannelId: string; channelId: string; index: number; kind: "channel-ordering"; plan: ChannelOrderingPlan; writeRequired: true; } | { channelId: string; index: number; kind: "channel-permission-overwrite"; plan: ChannelPermissionOverwritePlan; targetId: string; targetType: "member" | "role"; writeRequired: true; } | { kind: "community"; plan: GuildCommunityChangePlan; writeRequired: true; } | { kind: "onboarding"; plan: OnboardingChangePlan; writeRequired: true; } | { kind: "profile"; plan: GuildProfileChangePlan; writeRequired: true; } | { index: number; key: string; kind: "publication"; plan: ComponentMessagePlan; writeRequired: true; } | { index: number; kind: "role-configuration"; plan: RoleConfigurationPlan; roleId: string; writeRequired: true; } | { anchorRoleId: string; index: number; kind: "role-ordering"; plan: RoleOrderingPlan; roleId: string; writeRequired: true; } | { kind: "settings"; plan: GuildSettingsChangePlan; writeRequired: true; } | { kind: "structure"; plan: GuildScaffoldPlan; writeRequired: boolean; } | { kind: "welcome-screen"; plan: WelcomeScreenChangePlan; writeRequired: true; }; export interface GuildBlueprintPlan { applicationId: string; bindings: GuildBlueprintBinding[]; blocker: GuildBlueprintBlocker | null; botId: string; createdAt: string; digest: string; frontier: GuildBlueprintFrontier | null; guild: { id: string; name: string; ownerId: string; }; manifestPreview: GuildBlueprintPlanManifestPreview; operationKeyHash: string; privacy: { activityAndReceipts: "content-free-domain-records"; manifestPersistence: "none"; planPersistence: "none"; requestState: "digests-only"; }; requestDigest: string; schemaVersion: number; status: "already-current" | "blocked" | "planned"; steps: GuildBlueprintPlanStep[]; warnings: string[]; } export type GuildBlueprintNestedResult = AutoModerationResult | ChannelMetadataChangeResult | ChannelOrderingResult | ChannelPermissionOverwriteResult | ComponentMessageResult | GuildCommunityChangeResult | OnboardingChangeResult | GuildProfileChangeResult | RoleConfigurationResult | RoleOrderingResult | GuildScaffoldResult | GuildSettingsChangeResult | WelcomeScreenChangeResult; export interface GuildBlueprintResult { blocker: GuildBlueprintBlocker | null; digest: string; executedPhase: GuildBlueprintPhase | null; executedAutoModerationRuleIndex: number | null; executedChannelMetadataIndex: number | null; executedChannelOrderingIndex: number | null; executedChannelPermissionOverwriteIndex: number | null; executedPublicationIndex: number | null; executedRoleConfigurationIndex: number | null; executedRoleOrderingIndex: number | null; guildId: string; nestedResult: GuildBlueprintNestedResult | null; nextAction: "done" | "inspect" | "replan"; operationKeyHash: string; requestDigest: string; schemaVersion: number; status: "already-current" | "blocked" | "frontier-executed"; } export interface GuildBlueprintVerificationStep { anchorChannelId?: string | null; anchorRoleId?: string | null; channelId?: string | null; index?: number; kind: GuildBlueprintPhase; mode?: ChannelOrderMode | null; messageId?: string | null; nestedPlanDigest: string | null; operationKeyHash: string; state: GuildBlueprintPhaseState; receiptStatus?: OperationReceiptStatus | null; roleId?: string | null; ruleId?: string | null; stage?: GuildBlueprintAutoModerationStage | null; targetId?: string | null; targetType?: "member" | "role"; verificationReason?: GuildBlueprintAutoModerationBlockerReason | ComponentMessageVerificationReason | "reparenting-acknowledgement-required" | null; verificationStatus?: AutoModerationVerificationResult["status"] | ComponentMessageVerificationResult["status"] | null; writeRequired: boolean; } export interface GuildBlueprintVerification { applicationId: string; autoModerationRules: Array<{ index: number; ruleId: string; }>; blocker: GuildBlueprintBlocker | null; botId: string; checkedAt: string; digest: string; evidence: { activityAndReceipts: "content-free-domain-records"; callerRetainedManifestRequired: true; historicalMutationProvenance: "domain-activity-and-receipts"; manifestPersisted: false; source: "live-domain-plans-and-exact-receipt-readback"; }; guildId: string; operationKeyHash: string; requestDigest: string; resources: Array<{ index: number; kind: GuildBlueprintBinding["kind"]; resourceId: string; }>; schemaVersion: number; status: "blocked" | "incomplete" | "verified"; steps: GuildBlueprintVerificationStep[]; } export interface GuildBlueprintDomainServices { automod: { get(botId: string, guildId: string, ruleId: string, options?: RequestOptions): Promise; list(botId: string, guildId: string, options?: RequestOptions): Promise; plan(applicationId: string, botId: string, request: AutoModerationChangeRequest, options?: RequestOptions): Promise; verify(applicationId: string, botId: string, request: AutoModerationChangeRequest, options?: RequestOptions): Promise; }; channelMetadata: { reconcilePlan(applicationId: string, botId: string, request: ChannelMetadataChangeRequest, options?: RequestOptions): Promise; }; channelOrdering: { reconcilePlan(applicationId: string, botId: string, request: ChannelOrderingRequest, options?: RequestOptions): Promise; }; channelPermissionOverwrite: { reconcilePlan(applicationId: string, botId: string, request: ChannelPermissionOverwriteRequest, options?: RequestOptions): Promise; }; component: { plan(applicationId: string, botId: string, intent: ComponentMessageContentIntentStatus, request: ComponentMessageRequest, options?: RequestOptions): Promise; verify(applicationId: string, botId: string, intent: ComponentMessageContentIntentStatus, request: ComponentMessageRequest, options?: RequestOptions): Promise; }; community: { get(applicationId: string, botId: string, guildId: string, options?: RequestOptions): Promise; reconcilePlan(applicationId: string, botId: string, request: GuildCommunityChangeRequest, options?: RequestOptions): Promise; }; onboarding: { reconcilePlan(applicationId: string, botId: string, request: OnboardingChangeRequest, options?: RequestOptions): Promise; }; profile: { reconcilePlan(applicationId: string, botId: string, request: GuildProfileChangeRequest, options?: RequestOptions): Promise; }; roleConfiguration: { reconcilePlan(applicationId: string, botId: string, request: RoleConfigurationRequest, options?: RequestOptions): Promise; }; roleOrdering: { reconcilePlan(applicationId: string, botId: string, request: RoleOrderingRequest, options?: RequestOptions): Promise; }; scaffold: { plan(applicationId: string, botId: string, request: GuildScaffoldRequest, options?: RequestOptions): Promise; }; settings: { reconcilePlan(applicationId: string, botId: string, request: GuildSettingsChangeRequest, options?: RequestOptions): Promise; }; welcomeScreen: { reconcilePlan(applicationId: string, botId: string, request: WelcomeScreenChangeRequest, options?: RequestOptions): Promise; }; } export interface GuildBlueprintExecutors { executeAutoModeration(request: AutoModerationChangeRequest, planDigest: string, options?: RequestOptions): Promise; executeChannelMetadata(request: ChannelMetadataChangeRequest, planDigest: string, options?: RequestOptions): Promise; executeChannelOrdering(request: ChannelOrderingRequest, planDigest: string, options?: RequestOptions): Promise; executeChannelPermissionOverwrite(request: ChannelPermissionOverwriteRequest, planDigest: string, options?: RequestOptions): Promise; executeComponent(request: ComponentMessageRequest, planDigest: string, options?: RequestOptions): Promise; executeCommunity(request: GuildCommunityChangeRequest, planDigest: string, options?: RequestOptions): Promise; executeOnboarding(request: OnboardingChangeRequest, planDigest: string, options?: RequestOptions): Promise; executeProfile(request: GuildProfileChangeRequest, planDigest: string, options?: RequestOptions): Promise; executeRoleConfiguration(request: RoleConfigurationRequest, planDigest: string, options?: RequestOptions): Promise; executeRoleOrdering(request: RoleOrderingRequest, planDigest: string, options?: RequestOptions): Promise; executeScaffold(request: GuildScaffoldRequest, planDigest: string, options?: RequestOptions): Promise; executeSettings(request: GuildSettingsChangeRequest, planDigest: string, options?: RequestOptions): Promise; executeWelcomeScreen(request: WelcomeScreenChangeRequest, planDigest: string, options?: RequestOptions): Promise; } export interface GuildBlueprintServiceOptions { clock?: () => Date; domains: GuildBlueprintDomainServices; planKey?: Uint8Array; } export declare function guildBlueprintStepOperationKey(operationKey: string, phase: GuildBlueprintSingletonPhase): string; type GuildBlueprintExactTargetPhase = "channel-metadata" | "role-configuration"; export declare function guildBlueprintExactTargetOperationKey(operationKey: string, phase: GuildBlueprintExactTargetPhase, targetId: string): string; export declare function guildBlueprintPublicationOperationKey(operationKey: string, key: string): string; export declare function guildBlueprintAutoModerationOperationKey(operationKey: string, key: string, stage: GuildBlueprintAutoModerationStage): string; export declare function normalizeGuildBlueprintRequest(request: GuildBlueprintRequest): NormalizedGuildBlueprintRequest; export declare function guildBlueprintRequestDigest(request: GuildBlueprintRequest): string; export declare function previewGuildBlueprintManifest(request: GuildBlueprintRequest): GuildBlueprintManifestPreview; export declare class GuildBlueprintService { #private; constructor(options: GuildBlueprintServiceOptions); plan(applicationId: string, botId: string, intent: ComponentMessageContentIntentStatus, request: GuildBlueprintRequest, options?: RequestOptions): Promise; execute(applicationId: string, botId: string, intent: ComponentMessageContentIntentStatus, request: GuildBlueprintRequest, planDigest: string, executors: GuildBlueprintExecutors, options?: RequestOptions): Promise; verify(applicationId: string, botId: string, intent: ComponentMessageContentIntentStatus, request: GuildBlueprintRequest, options?: RequestOptions): Promise; } export {}; //# sourceMappingURL=guild-blueprint-service.d.ts.map