/** * Starting Equipment & Spell Provisioning Service * * Automatically grants class-appropriate starting equipment, spells, and currency * when creating new characters. Uses D&D 5e SRD as baseline. * * DESIGN PHILOSOPHY: * - Auto-provision by default (reduces manual follow-up prompts) * - Allow improv/override (LLM can specify custom equipment) * - Fail gracefully (if item creation fails, character still works) */ import Database from 'better-sqlite3'; export interface ProvisioningResult { itemsGranted: string[]; spellsGranted: string[]; cantripsGranted: string[]; spellSlots: number[] | null; pactMagicSlots: { slots: number; level: number; } | null; startingGold: number; errors: string[]; } export interface ProvisioningOptions { /** Skip equipment provisioning entirely */ skipEquipment?: boolean; /** Skip spell provisioning entirely */ skipSpells?: boolean; /** Override starting gold (otherwise uses class default) */ startingGold?: number; /** Custom equipment to grant instead of defaults */ customEquipment?: string[]; /** Custom spells to grant instead of defaults */ customSpells?: string[]; /** Custom cantrips to grant instead of defaults */ customCantrips?: string[]; } /** * Provision starting equipment and spells for a newly created character */ export declare function provisionStartingEquipment(db: Database.Database, characterId: string, className: string, level?: number, options?: ProvisioningOptions): ProvisioningResult; /** * Get the spellcasting ability modifier for spell save DC and attack bonus calculation */ export declare function getSpellcastingAbility(className: string): 'int' | 'wis' | 'cha' | null; /** * Calculate spell save DC */ export declare function calculateSpellSaveDC(proficiencyBonus: number, abilityModifier: number): number; /** * Calculate spell attack bonus */ export declare function calculateSpellAttackBonus(proficiencyBonus: number, abilityModifier: number): number; //# sourceMappingURL=starting-equipment.service.d.ts.map