/** * Philosophy domain state - represents the state of a philosophical discussion */ import { BaseGameState } from "../base/game-state"; import { Action } from "../base/action"; import { PlayerId } from "../../types/common"; import { PhilosophyAction, PhilosophicalStance } from "./philosophy-action"; /** * An argument made during the discussion */ export interface Argument { id: string; agentId: string; content: string; stance: PhilosophicalStance; confidence: number; reasoning: string; supports: string[]; refutations: string[]; turnNumber: number; } /** * Discussion metrics and status */ export interface DiscussionMetrics { totalArguments: number; consensusLevel: number; diversityScore: number; participationBalance: number; argumentQuality: number; turnsRemaining: number; } /** * State of a philosophical discussion */ export declare class PhilosophyState extends BaseGameState { readonly question: string; readonly arguments: Map; readonly participatingAgents: Set; readonly turnHistory: PhilosophyAction[]; readonly metrics: DiscussionMetrics; readonly maxTurns: number; readonly consensusThreshold: number; constructor(question: string, participatingAgents: Set, currentPlayer?: PlayerId, maxTurns?: number, consensusThreshold?: number, argumentsMap?: Map, turnHistory?: PhilosophyAction[], isTerminal?: boolean, winner?: PlayerId | undefined); clone(): PhilosophyState; applyAction(action: Action): PhilosophyState; getValidActions(): PhilosophyAction[]; serialize(): string; getFeatures(): number[]; getHashKey(): string; getTurnNumber(): number; getGameInfo(): Record; /** * Get the current level of consensus in the discussion */ getConsensusLevel(): number; /** * Check if the discussion has reached consensus */ hasReachedConsensus(): boolean; /** * Get a summary of the discussion so far */ getDiscussionSummary(): string; /** * Get the dominant stance in the discussion */ getDominantStance(): PhilosophicalStance; private calculateMetrics; private calculateConsensusLevel; private calculateDiversityScore; private calculateParticipationBalance; private calculateArgumentQuality; private getStanceDistribution; private hasOpposingStances; private countArgumentType; private determineWinner; private createSampleAction; /** * Create an initial philosophy discussion state */ static createInitialState(question: string, participatingAgents: string[], maxTurns?: number, consensusThreshold?: number): PhilosophyState; } //# sourceMappingURL=philosophy-state.d.ts.map