export type RendererDom = { subtitleRoot: HTMLElement; subtitleContainer: HTMLElement; overlay: HTMLElement; secondarySubContainer: HTMLElement; secondarySubRoot: HTMLElement; jimakuModal: HTMLDivElement; jimakuTitleInput: HTMLInputElement; jimakuSeasonInput: HTMLInputElement; jimakuEpisodeInput: HTMLInputElement; jimakuSearchButton: HTMLButtonElement; jimakuCloseButton: HTMLButtonElement; jimakuStatus: HTMLDivElement; jimakuEntriesSection: HTMLDivElement; jimakuEntriesList: HTMLUListElement; jimakuFilesSection: HTMLDivElement; jimakuFilesList: HTMLUListElement; jimakuBroadenButton: HTMLButtonElement; kikuModal: HTMLDivElement; kikuCard1: HTMLDivElement; kikuCard2: HTMLDivElement; kikuCard1Expression: HTMLDivElement; kikuCard2Expression: HTMLDivElement; kikuCard1Sentence: HTMLDivElement; kikuCard2Sentence: HTMLDivElement; kikuCard1Meta: HTMLDivElement; kikuCard2Meta: HTMLDivElement; kikuConfirmButton: HTMLButtonElement; kikuCancelButton: HTMLButtonElement; kikuDeleteDuplicateCheckbox: HTMLInputElement; kikuSelectionStep: HTMLDivElement; kikuPreviewStep: HTMLDivElement; kikuPreviewJson: HTMLPreElement; kikuPreviewCompactButton: HTMLButtonElement; kikuPreviewFullButton: HTMLButtonElement; kikuPreviewError: HTMLDivElement; kikuBackButton: HTMLButtonElement; kikuFinalConfirmButton: HTMLButtonElement; kikuFinalCancelButton: HTMLButtonElement; kikuHint: HTMLDivElement; runtimeOptionsModal: HTMLDivElement; runtimeOptionsClose: HTMLButtonElement; runtimeOptionsList: HTMLUListElement; runtimeOptionsStatus: HTMLDivElement; subsyncModal: HTMLDivElement; subsyncCloseButton: HTMLButtonElement; subsyncEngineAlass: HTMLInputElement; subsyncEngineFfsubsync: HTMLInputElement; subsyncSourceLabel: HTMLLabelElement; subsyncSourceSelect: HTMLSelectElement; subsyncRunButton: HTMLButtonElement; subsyncStatus: HTMLDivElement; }; function getRequiredElement(id: string): T { const element = document.getElementById(id); if (!element) { throw new Error(`Missing required DOM element #${id}`); } return element as T; } export function resolveRendererDom(): RendererDom { return { subtitleRoot: getRequiredElement("subtitleRoot"), subtitleContainer: getRequiredElement("subtitleContainer"), overlay: getRequiredElement("overlay"), secondarySubContainer: getRequiredElement("secondarySubContainer"), secondarySubRoot: getRequiredElement("secondarySubRoot"), jimakuModal: getRequiredElement("jimakuModal"), jimakuTitleInput: getRequiredElement("jimakuTitle"), jimakuSeasonInput: getRequiredElement("jimakuSeason"), jimakuEpisodeInput: getRequiredElement("jimakuEpisode"), jimakuSearchButton: getRequiredElement("jimakuSearch"), jimakuCloseButton: getRequiredElement("jimakuClose"), jimakuStatus: getRequiredElement("jimakuStatus"), jimakuEntriesSection: getRequiredElement("jimakuEntriesSection"), jimakuEntriesList: getRequiredElement("jimakuEntries"), jimakuFilesSection: getRequiredElement("jimakuFilesSection"), jimakuFilesList: getRequiredElement("jimakuFiles"), jimakuBroadenButton: getRequiredElement("jimakuBroaden"), kikuModal: getRequiredElement("kikuFieldGroupingModal"), kikuCard1: getRequiredElement("kikuCard1"), kikuCard2: getRequiredElement("kikuCard2"), kikuCard1Expression: getRequiredElement("kikuCard1Expression"), kikuCard2Expression: getRequiredElement("kikuCard2Expression"), kikuCard1Sentence: getRequiredElement("kikuCard1Sentence"), kikuCard2Sentence: getRequiredElement("kikuCard2Sentence"), kikuCard1Meta: getRequiredElement("kikuCard1Meta"), kikuCard2Meta: getRequiredElement("kikuCard2Meta"), kikuConfirmButton: getRequiredElement("kikuConfirmButton"), kikuCancelButton: getRequiredElement("kikuCancelButton"), kikuDeleteDuplicateCheckbox: getRequiredElement("kikuDeleteDuplicate"), kikuSelectionStep: getRequiredElement("kikuSelectionStep"), kikuPreviewStep: getRequiredElement("kikuPreviewStep"), kikuPreviewJson: getRequiredElement("kikuPreviewJson"), kikuPreviewCompactButton: getRequiredElement("kikuPreviewCompact"), kikuPreviewFullButton: getRequiredElement("kikuPreviewFull"), kikuPreviewError: getRequiredElement("kikuPreviewError"), kikuBackButton: getRequiredElement("kikuBackButton"), kikuFinalConfirmButton: getRequiredElement("kikuFinalConfirmButton"), kikuFinalCancelButton: getRequiredElement("kikuFinalCancelButton"), kikuHint: getRequiredElement("kikuHint"), runtimeOptionsModal: getRequiredElement("runtimeOptionsModal"), runtimeOptionsClose: getRequiredElement("runtimeOptionsClose"), runtimeOptionsList: getRequiredElement("runtimeOptionsList"), runtimeOptionsStatus: getRequiredElement("runtimeOptionsStatus"), subsyncModal: getRequiredElement("subsyncModal"), subsyncCloseButton: getRequiredElement("subsyncClose"), subsyncEngineAlass: getRequiredElement("subsyncEngineAlass"), subsyncEngineFfsubsync: getRequiredElement("subsyncEngineFfsubsync"), subsyncSourceLabel: getRequiredElement("subsyncSourceLabel"), subsyncSourceSelect: getRequiredElement("subsyncSourceSelect"), subsyncRunButton: getRequiredElement("subsyncRun"), subsyncStatus: getRequiredElement("subsyncStatus"), }; }