/** * Provider- and Brain-independent council vote resolution. * * This module contains only deterministic quorum, veto, weighted-majority, * refusal, and judge-escalation rules. LLM calls, prompts, parsing, and host * decision types belong in adapters such as `council-brain.ts`. */ export interface CouncilResolutionSeat { id: string; /** Vote weight in the tally. Default 1. */ weight?: number | undefined; /** A refusal from this seat immediately denies the proposal. */ veto?: boolean | undefined; } export interface CouncilResolutionVote { seatId: string; optionId: string; } export interface CouncilResolutionInput { seats: readonly CouncilResolutionSeat[]; votes: readonly CouncilResolutionVote[]; refusalOptionId: string; /** Fraction of configured seats required to return a vote. */ quorumFraction: number; /** Winning weight must exceed this fraction of cast weight. */ approvalFraction: number; } export type CouncilResolution = { status: 'abstained'; reason: 'quorum_not_met'; validVoteCount: number; seatCount: number; } | { status: 'denied'; method: 'veto'; optionId: string; seatId: string; } | { status: 'denied'; method: 'refusal'; optionId: string; winningWeight: number; castWeight: number; } | { status: 'decided'; method: 'majority'; optionId: string; winningWeight: number; castWeight: number; } | { status: 'needs_judge'; reason: 'tie' | 'approval_threshold_not_met'; castWeight: number; }; /** Resolve already-parsed council votes without performing any I/O. */ export declare function resolveCouncilVotes(input: CouncilResolutionInput): CouncilResolution; //# sourceMappingURL=council-resolution.d.ts.map