import { UiConfigRendererTweakpane } from 'uiconfig-tweakpane';
import { Class, IViewerPlugin, IViewerPluginSync, ThreeViewer, UiObjectConfig } from 'threepipe';
declare const themeColors: readonly ["black", "white", "blue", "light", "dark"];
type ThemeColors = typeof themeColors[number];
export declare class TweakpaneUiPlugin extends UiConfigRendererTweakpane implements IViewerPluginSync {
    ['constructor']: typeof TweakpaneUiPlugin;
    static readonly PluginType = "TweakpaneUi";
    enabled: boolean;
    static CONTAINER_SLOT: string;
    colorMode: ThemeColors;
    constructor(expanded?: boolean, bigTheme?: boolean, container?: HTMLElement, colorMode?: ThemeColors);
    protected _viewer?: ThreeViewer;
    private _lastManager?;
    onAdded(viewer: ThreeViewer): void;
    onRemove(viewer: ThreeViewer): void;
    private _plugins;
    setupPlugins(...plugins: Class<IViewerPlugin>[]): void;
    setupPluginUi<T extends IViewerPlugin>(plugin: T | Class<T>, params?: Partial<UiObjectConfig>): UiObjectConfig | undefined;
    private _setupPluginSerializationContext;
    refreshPluginsEnabled(): void;
    private _preRender;
    private _postRender;
    private _postFrame;
    private _preFrame;
    alert: (message?: string) => Promise<void>;
    confirm: (message?: string) => Promise<boolean>;
    prompt: (message?: string, _default?: string, cancel?: boolean) => Promise<string | null>;
    protected _colorModeChanged(): void;
    dispose(): void;
}
export {};
//# sourceMappingURL=TweakpaneUiPlugin.d.ts.map