import { PptxTheme, PptxThemeColorScheme } from 'pptx-viewer-core'; import { PresetTheme } from 'pptx-viewer-shared'; /** The three commit channels the panel pushes each edit out through. */ export interface ThemeEditorCommits { onupdatecolorscheme: (colorScheme: PptxThemeColorScheme) => void; onupdatefontscheme: (fontScheme: { majorFont: { latin: string; }; minorFont: { latin: string; }; }) => void; onupdatename: (name: string) => void; } /** * The theme editor's working copy. * * The panel edits this copy and pushes every change out through the * `onupdate*` callbacks, exactly like React's `ThemeEditorPanel`: the host owns * the committed theme, so the panel never mutates the `theme` prop. * * `initialTheme` is captured with `untrack` at construction, which is * load-bearing twice over: it seeds the working copy without the read counting * as a reactive dependency (Svelte warns otherwise), and it pins the value * {@link reset} reverts to, so Reset still restores the file's theme after a * dozen edits have flowed back in through the `theme` prop. */ export declare class ThemeEditorState { #private; colors: PptxThemeColorScheme; majorFont: string; minorFont: string; name: string; /** The swatch whose colour picker is open, or null when none is. */ activePickerKey: keyof PptxThemeColorScheme | null; constructor(getTheme: () => PptxTheme | undefined, commits: ThemeEditorCommits); setColor(key: keyof PptxThemeColorScheme, hex: string): void; /** Accept a typed hex only once it is a complete 6-digit value. */ setColorText(hex: string): void; setFonts(major: string, minor: string): void; setName(name: string): void; selectPreset(preset: PresetTheme): void; /** Revert the working copy to the theme as loaded from the file. */ reset(): void; } //# sourceMappingURL=theme-editor-state.svelte.d.ts.map