import { SeededRandom } from '../utils/random'; import { ChainDefinition, Event, PlayerContext } from '../types'; import { IChainSystem } from '../interfaces'; export interface ActiveChain { id: string; definition: string; stage: number; playerContext: PlayerContext; completedStages: Set; startedAt: number; nextEventTime?: number; nextEventTemplate?: string; } export interface ChainProgression { event: Event; chainId: string; stage: number; isComplete: boolean; nextStage?: number; } export declare class ChainSystem implements IChainSystem { private activeChains; private chainDefinitions; private rng; constructor(rng?: SeededRandom); /** * Initialize built-in chain definitions */ private initializeChainDefinitions; /** * Start a new event chain */ startChain(chainId: string, playerContext?: PlayerContext): Event | null; /** * Advance an existing chain based on player choice */ advanceChain(chainId: string, choice: string): Event | null; /** * Determine the next stage in a chain */ private determineNextStage; /** * Generate an event for the current stage of a chain */ private generateChainEvent; /** * End a chain and clean up */ endChain(chainId: string): void; /** * Get all currently active chains */ getActiveChains(): ActiveChain[]; /** * Get detailed information about a specific chain */ getChainInfo(chainId: string): ActiveChain | null; /** * Register a custom chain definition */ registerChain(chainId: string, definition: ChainDefinition): boolean; /** * Unregister a custom chain definition */ unregisterChain(chainId: string): boolean; /** * Get all available chain definitions */ getAvailableChains(): { [id: string]: ChainDefinition; }; /** * Force advance a chain to a specific stage (for testing/debugging) */ forceAdvanceChain(chainId: string, targetStage: number): boolean; /** * Get chain system statistics */ getStats(): { activeChains: number; totalDefinitions: number; customDefinitions: number; }; } //# sourceMappingURL=ChainSystem.d.ts.map