import { ThemeFlavor } from '../theme-mapper.js'; import { ThemeFamilyMeta } from '../constants.js'; import { DropdownElements } from './state.js'; export interface DropdownContext { documentObj: Document; windowObj: Window; baseUrl: string; currentThemeId: string; selectEl: HTMLSelectElement | null; menuItems: HTMLElement[]; closeDropdown: (options?: { restoreFocus?: boolean; }) => void; onThemeSelect: (themeId: string) => void; } /** * Creates a checkmark SVG icon for the active theme indicator. */ export declare function createCheckmarkIcon(doc: Document): SVGSVGElement; /** * Creates a single theme item button element. */ export declare function createThemeItemElement(ctx: DropdownContext, theme: ThemeFlavor, familyMeta: ThemeFamilyMeta): HTMLButtonElement; /** * Creates a family group container with header and theme items. */ export declare function createFamilyGroup(ctx: DropdownContext, familyKey: string, themes: ThemeFlavor[], familyMeta: ThemeFamilyMeta, animationDelay: number): { group: HTMLDivElement; items: HTMLElement[]; } | null; /** * Populates the dropdown menu with all theme family groups. */ export declare function populateDropdownMenu(ctx: DropdownContext, dropdownMenu: HTMLElement, themes: ThemeFlavor[], themeFamilies: Record): void; /** * Wires up the native select element for theme selection. */ export declare function wireNativeSelect(ctx: DropdownContext, selectEl: HTMLSelectElement, themes: ThemeFlavor[], defaultTheme: string): void; /** * Gets DOM elements required for the dropdown, returning null if any are missing. */ export declare function getDropdownElements(documentObj: Document): DropdownElements | null; //# sourceMappingURL=ui.d.ts.map