import type { SettingDescriptor, SettingsSchema, SettingsState } from "../lib/settings/settings.js"; import type { WidgetPanel, WidgetPanelTheme } from "./widget-containers.js"; import type { JSX } from 'preact'; type SettingsPanelChangeHandler = (settings: SettingsState, changedSettings?: Array<{ name: string; previousValue: unknown; nextValue: unknown; descriptor?: SettingDescriptor; }>) => void; /** Settings panel configuration for sidebar/modal container composition. */ export type SettingsPanelProps = { /** Stable panel id used by parent containers. */ id?: string; /** Fallback title used when the schema does not provide one. */ label?: string; /** Descriptor schema rendered by the settings panel. */ schema?: SettingsSchema; /** Current settings values shown and edited by the panel. */ settings?: SettingsState; /** Called when a setting value changes. */ onSettingsChange?: SettingsPanelChangeHandler; /** Optional theme override applied to this panel subtree. */ theme?: WidgetPanelTheme; }; type SettingsPanelContentProps = { schema: SettingsSchema; settings: SettingsState; onSettingsChange?: SettingsPanelChangeHandler; }; /** * Shared settings body used by both the legacy popover widget and panel-based containers. */ export declare function SettingsPanelContent({ schema, settings, onSettingsChange }: SettingsPanelContentProps): JSX.Element; /** * A reusable settings panel that can be mounted inside modal and sidebar widget containers. */ export declare class SettingsPanel implements WidgetPanel { id: string; title: string; theme?: WidgetPanelTheme; content: JSX.Element; /** * Creates one widget panel per top-level settings schema section for generic composition. */ static createSectionPanels({ label, schema, settings, onSettingsChange, theme }: Omit): Record; constructor({ id, label, schema, settings, onSettingsChange, theme }?: SettingsPanelProps); } export {}; //# sourceMappingURL=settings-panel.d.ts.map