import type { IViewBased, IViewOptions } from "jodit/esm/types/index";
import { UIElement } from "jodit/esm/core/ui/element";
import type { IAIAssistantProOptions, IConversation } from "../../interface/index";
/**
 * Settings button that opens settings popup
 */
export declare class UISettingsButton extends UIElement<IViewBased> {
    private extraState;
    protected options: {
        allowEditTheme: IAIAssistantProOptions['allowEditTheme'];
        allowEditDisplayMode: IAIAssistantProOptions['allowEditDisplayMode'];
        allowEditPanelWidth: IAIAssistantProOptions['allowEditPanelWidth'];
        allowEditDialogSettings: IAIAssistantProOptions['allowEditDialogSettings'];
        dialogSettings: IAIAssistantProOptions['dialogSettings'];
    };
    private getConversation;
    private updateConversation;
    className(): string;
    private closeCallback;
    private settingsPopup;
    private button;
    constructor(view: IViewBased, extraState: {
        theme: IAIAssistantProOptions['theme'];
        displayMode: IAIAssistantProOptions['displayMode'];
        panelWidth: IAIAssistantProOptions['panelWidth'];
        panelHeight: IAIAssistantProOptions['panelHeight'];
        defaultModel: IAIAssistantProOptions['defaultModel'];
        defaultTemperature: IAIAssistantProOptions['defaultTemperature'];
    }, options: {
        allowEditTheme: IAIAssistantProOptions['allowEditTheme'];
        allowEditDisplayMode: IAIAssistantProOptions['allowEditDisplayMode'];
        allowEditPanelWidth: IAIAssistantProOptions['allowEditPanelWidth'];
        allowEditDialogSettings: IAIAssistantProOptions['allowEditDialogSettings'];
        dialogSettings: IAIAssistantProOptions['dialogSettings'];
    }, getConversation: () => IConversation | null, updateConversation: (conv: Partial<IConversation>) => void);
    setParentView(view: IViewBased<IViewOptions>): this;
    protected onChangeOptionsClosePopup(opts: object): void;
    /**
     * Open settings popup
     */
    private openSettingsPopup;
}
