import { type KitBlueprint } from './core.js'; /** Options for {@link guildBlueprint}. */ export interface GuildBlueprintOptions { /** * Prefix for the composed type names (`'Guild'` → `GuildHall` / * `GuildBankInventory`). Defaults to `'Guild'`. */ typePrefix?: string; /** * The guild team's group id — the hall's `group_permission` policy checks * membership of THIS group. Create the team first * (`kit.social.guild.create`), then deploy the blueprint. Deploy one * prefixed blueprint per guild that needs its own hall. */ guildGroupId: string; /** * Optional group permission key the hall requires (e.g. a custom * `use_hall` role permission). Omit to admit every guild member. */ hallPermission?: string; /** Also compose a guild-bank inventory (`Bank*`). Defaults to true. */ bank?: boolean; } /** Names derived by {@link guildBlueprint} for a given prefix. */ export interface GuildNames { hallType: string; openHallFn: string; closeHallFn: string; bankTypePrefix: string; bankInventoryType: string; bankStackType: string; } /** Compute the type/function names a guild blueprint (and kit.social.guild) uses. */ export declare function guildNames(typePrefix?: string): GuildNames; /** * Composite blueprint for a **guild's shared assets** — a demonstration of * blueprint composition: a `GuildHall` lockable whose open/close is gated on * membership of the guild team (`group_permission`), plus a prefixed * guild-bank inventory (`GuildBankInventory` / `GuildBankItemStack`) for * shared storage. The guild itself is a **team** (`kit.social.guild`), its * chat a **channel**, and its territory a grid group-grant * (`kit.social.guild.claimTerritory`) — no new model surface needed for * those. * * Runtime counterparts: `client.kit(appId).social.guild` (team/chat/territory), * `kit.objectsFor(guildNames().hallType)` (the hall), and * `client.kit(appId, { inventory: { typePrefix: guildNames().bankTypePrefix } }) * .inventory` (the bank). */ export declare function guildBlueprint(options: GuildBlueprintOptions): KitBlueprint; //# sourceMappingURL=guild.d.ts.map