/** * UI types — shared interfaces for all UI modules. */ import { EmbedBuilder } from "discord.js"; import { PollState, VoteEntry, Nation } from "@types"; // ─── Poll ───────────────────────────────────────────────────────────────────── export interface PollRowContext { nationHasRank: boolean; nationHasDelta: boolean; showNationEmoji?: boolean; historyKey?: string } export interface PollEmbedOptions { overrideLockMsg?: string; showScoreButton?: boolean; } export interface PollLayout { name: string; description: string; buildEmbed(state: PollState, options?: PollEmbedOptions): EmbedBuilder; formatRow(entry: VoteEntry, context: PollRowContext): string; buildContext(entries: VoteEntry[], nation: Nation, options?: { showNationEmoji?: boolean }): PollRowContext; }