import type { CommandAcknowledgement, CommandAuthorization, CommandAutocompleteContext, CommandInteractionContext, CommandOptionDefinition, CommandPermissionOperation, CommandRegistrationPolicy } from "./index.js"; export interface SharedCommandPathSpec { path: string; ownerModuleId: string; groupDescription?: string; } export interface SharedCommandFamilySpec { name: string; description: string; registrationPolicy: CommandRegistrationPolicy; contexts: readonly ("guild" | "bot_dm" | "private_channel")[]; integrationTypes: readonly ("guild_install" | "user_install")[]; paths: readonly SharedCommandPathSpec[]; } export declare const SHARED_COMMAND_FAMILY_SPECS: readonly [{ readonly name: "helyx"; readonly description: "Manage Helyx and get platform help"; readonly registrationPolicy: "platform-global"; readonly contexts: readonly ["guild"]; readonly integrationTypes: readonly ["guild_install"]; readonly paths: readonly [{ readonly path: "modules"; readonly ownerModuleId: "helyx.management"; }, { readonly path: "permissions"; readonly ownerModuleId: "helyx.permissions"; }, { readonly path: "bug"; readonly ownerModuleId: "helyx.support"; }, { readonly path: "connections"; readonly ownerModuleId: "helyx.oauth"; }, { readonly path: "privacy"; readonly ownerModuleId: "helyx.privacy"; }, { readonly path: "cloud.connect"; readonly ownerModuleId: "helyx.cloud-connect"; readonly groupDescription: "Manage this deployment's Helyx Cloud connection"; }, { readonly path: "cloud.status"; readonly ownerModuleId: "helyx.cloud-connect"; readonly groupDescription: "Manage this deployment's Helyx Cloud connection"; }, { readonly path: "cloud.disconnect"; readonly ownerModuleId: "helyx.cloud-connect"; readonly groupDescription: "Manage this deployment's Helyx Cloud connection"; }, { readonly path: "cloud.rotate"; readonly ownerModuleId: "helyx.cloud-connect"; readonly groupDescription: "Manage this deployment's Helyx Cloud connection"; }, { readonly path: "cloud.support"; readonly ownerModuleId: "helyx.cloud-connect"; readonly groupDescription: "Manage this deployment's Helyx Cloud connection"; }]; }, { readonly name: "games"; readonly description: "Play games enabled for this server"; readonly registrationPolicy: "enabled-guild"; readonly contexts: readonly ["guild"]; readonly integrationTypes: readonly ["guild_install"]; readonly paths: readonly [{ readonly path: "counting"; readonly ownerModuleId: "helyx.counting"; }, { readonly path: "trivia"; readonly ownerModuleId: "helyx.trivia"; }]; }, { readonly name: "profile"; readonly description: "View member progress in this server"; readonly registrationPolicy: "enabled-guild"; readonly contexts: readonly ["guild"]; readonly integrationTypes: readonly ["guild_install"]; readonly paths: readonly [{ readonly path: "achievements.view"; readonly ownerModuleId: "helyx.achievements"; readonly groupDescription: "View member achievements"; }, { readonly path: "achievements.available"; readonly ownerModuleId: "helyx.achievements"; readonly groupDescription: "View member achievements"; }, { readonly path: "levels.rank"; readonly ownerModuleId: "helyx.levels"; readonly groupDescription: "View member levels"; }, { readonly path: "levels.leaderboard"; readonly ownerModuleId: "helyx.levels"; readonly groupDescription: "View member levels"; }]; }, { readonly name: "access"; readonly description: "Use access tools enabled for this server"; readonly registrationPolicy: "enabled-guild"; readonly contexts: readonly ["guild"]; readonly integrationTypes: readonly ["guild_install"]; readonly paths: readonly [{ readonly path: "control.start"; readonly ownerModuleId: "helyx.account-gate"; readonly groupDescription: "Use this server's Access Control checks"; }, { readonly path: "control.reset"; readonly ownerModuleId: "helyx.account-gate"; readonly groupDescription: "Use this server's Access Control checks"; }, { readonly path: "control.status"; readonly ownerModuleId: "helyx.account-gate"; readonly groupDescription: "Use this server's Access Control checks"; }, { readonly path: "control.strict"; readonly ownerModuleId: "helyx.account-gate"; readonly groupDescription: "Use this server's Access Control checks"; }, { readonly path: "verification.start"; readonly ownerModuleId: "helyx.verification"; readonly groupDescription: "Use this server's Verification checks"; }, { readonly path: "verification.status"; readonly ownerModuleId: "helyx.verification"; readonly groupDescription: "Use this server's Verification checks"; }, { readonly path: "verification.check"; readonly ownerModuleId: "helyx.verification"; readonly groupDescription: "Use this server's Verification checks"; }, { readonly path: "verification.approve"; readonly ownerModuleId: "helyx.verification"; readonly groupDescription: "Use this server's Verification checks"; }, { readonly path: "verification.deny"; readonly ownerModuleId: "helyx.verification"; readonly groupDescription: "Use this server's Verification checks"; }, { readonly path: "verification.retry"; readonly ownerModuleId: "helyx.verification"; readonly groupDescription: "Use this server's Verification checks"; }, { readonly path: "verification.reset"; readonly ownerModuleId: "helyx.verification"; readonly groupDescription: "Use this server's Verification checks"; }, { readonly path: "verification.resend"; readonly ownerModuleId: "helyx.verification"; readonly groupDescription: "Use this server's Verification checks"; }]; }, { readonly name: "submit"; readonly description: "Share feedback and ideas with this server"; readonly registrationPolicy: "enabled-guild"; readonly contexts: readonly ["guild"]; readonly integrationTypes: readonly ["guild_install"]; readonly paths: readonly [{ readonly path: "feedback"; readonly ownerModuleId: "helyx.feedback"; }, { readonly path: "suggestion"; readonly ownerModuleId: "helyx.suggestions"; }]; }]; export type SharedCommandFamilyName = (typeof SHARED_COMMAND_FAMILY_SPECS)[number]["name"]; export interface SharedCommandContribution { family: SharedCommandFamilyName; path: string; description: string; contexts?: readonly ("guild" | "bot_dm" | "private_channel")[]; acknowledgement?: CommandAcknowledgement; permissionId?: string; authorization?: CommandAuthorization; permissionOperations?: readonly CommandPermissionOperation[]; options?: readonly CommandOptionDefinition[]; rateLimit?: { scope: "user" | "guild"; limit: number; windowSeconds: number; }; autocomplete?(context: CommandAutocompleteContext): Promise; execute(context: CommandInteractionContext): Promise; } export declare function sharedCommandFamilySpec(family: string): SharedCommandFamilySpec | undefined; export declare function sharedCommandPathSpec(family: string, path: string): SharedCommandPathSpec | undefined;