import { Base, SurveyModel, Question, PanelModel, PageModel, IElement, JsonObjectProperty, ActionContainer, IAction, Action, IPanel, SurveyElement, ItemValue, QuestionSelectBase, QuestionRowModel, LocalizableString, ILocalizableString, ILocalizableOwner, PopupBaseViewModel, EventBase, MatrixDropdownColumn, ISurveyElement, ITheme } from "survey-core";
import { ICreatorPlugin, ISurveyCreatorOptions, ICollectionItemAllowOperations, ITabOptions } from "./creator-settings";
import { DragDropChoices } from "survey-core";
import { QuestionToolbox, QuestionToolboxItem } from "./toolbox";
import { PropertyGridModel } from "./property-grid";
import { ICreatorSelectionOwner } from "./selection-owner";
import { SelectionHistory } from "./selection-history";
import { SurveyLogic } from "./components/tabs/logic";
import { Notifier } from "survey-core";
import { UndoRedoManager } from "./plugins/undo-redo/undo-redo-manager";
import { UndoRedoController } from "./plugins/undo-redo/undo-redo-controller";
import { CreatorResponsivityManager } from "./creator-responsivity-manager";
import { SidebarModel } from "./components/side-bar/side-bar-model";
import { ICreatorOptions } from "./creator-options";
import { ThemeTabPlugin } from "./components/tabs/theme-plugin";
import { DragDropSurveyElements } from "./dragdrop-survey-elements";
import { PageAdorner } from "./components/page";
import { ElementDeletingEvent, PropertyGetReadOnlyEvent, ElementGetDisplayNameEvent, ElementAllowOperationsEvent, ElementGetActionsEvent, PropertyShowingEvent, PropertyGridSurveyCreatedEvent, PropertyEditorCreatedEvent, PropertyEditorUpdateTitleActionsEvent, PropertyGridShowPopupEvent, CollectionItemAllowOperationsEvent, CollectionItemAddedEvent, FastEntryItemsEvent as FastEntryFinishedEvent, MatrixColumnAddedEvent, ConfigureTablePropertyEditorEvent, PropertyDisplayCustomErrorEvent, BeforePropertyChangedEvent, ConditionGetQuestionListEvent, GetConditionOperatorEvent, LogicRuleGetDisplayTextEvent, ModifiedEvent, QuestionAddedEvent, PanelAddedEvent, PageAddedEvent, QuestionConvertingEvent, PageGetFooterActionsEvent, SurveyInstanceCreatedEvent, DesignerSurveyCreatedEvent, PreviewSurveyCreatedEvent, NotifyEvent, ElementFocusingEvent, ElementFocusedEvent, OpenFileChooserEvent, UploadFileEvent, TranslationStringVisibilityEvent, TranslationImportItemEvent, TranslationImportedEvent, TranslationExportItemEvent, MachineTranslateEvent, TranslationItemChangingEvent, DragDropAllowEvent, CreateCustomMessagePanelEvent, ActiveTabChangingEvent, ActiveTabChangedEvent, BeforeUndoEvent, BeforeRedoEvent, PageAddingEvent, DragStartEndEvent, ElementGetExpandCollapseStateEvent, ElementGetExpandCollapseStateEventReason, AfterPropertyChangedEvent, PropertyValueChangingEvent, PropertyValueChangedEvent, PropertyAddingEvent, GetPropertyReadOnlyEvent, ElementSelectingEvent, ElementSelectedEvent, DefineElementMenuItemsEvent, CreatorThemePropertyChangedEvent, CreatorThemeSelectedEvent, AllowInplaceEditEvent } from "./creator-events-api";
import { ExpandCollapseManager } from "./expand-collapse-manager";
import { ICreatorTheme } from "./creator-theme/creator-themes";
import { TabbedMenuContainer, TabbedMenuItem } from "./tabbed-menu";
import "./components/creator.scss";
import "./components/string-editor.scss";
import "./creator-theme/creator.scss";
export interface IKeyboardShortcut {
    name?: string;
    affectedTab?: string;
    hotKey: {
        ctrlKey?: boolean;
        keyCode: number;
    };
    macOsHotkey?: {
        shiftKey?: boolean;
        keyCode: number;
    };
    execute: (context: any) => void;
}
export declare class CreatorAction extends Action {
}
export declare class FooterToolbarActionContainer extends ActionContainer {
    protected getDefaultCssClasses(): {
        root: string;
        item: string;
        itemWithTitle: string;
        itemAsIcon: string;
        itemActive: string;
        itemPressed: string;
        itemIcon: string;
        itemTitle: string;
        itemTitleWithIcon: string;
    };
}
export declare class ToolbarActionContainer extends FooterToolbarActionContainer {
    private creator;
    constructor(creator: SurveyCreatorModel);
    protected getRenderedActions(): Array<Action>;
}
export type toolboxLocationType = "left" | "right" | "sidebar";
export declare class CreatorEvent<T> extends EventBase<SurveyCreatorModel, T> {
}
/**
 * A class with properties, methods, and events that allow you to configure Survey Creator and manage its elements.
 *
 * [View Demo](https://surveyjs.io/survey-creator/examples/free-nps-survey-template/ (linkStyle))
 */
export declare class SurveyCreatorModel extends Base implements ISurveyCreatorOptions, ICreatorSelectionOwner, ILocalizableOwner {
    protected options: ICreatorOptions;
    getMarkdownHtml(text: string, name: string): string;
    getRenderer(name: string): string;
    getRendererContext(locStr: LocalizableString): any;
    getProcessedText(text: string): string;
    getLocale(): string;
    /**
     * Specifies whether to display the [Designer](https://surveyjs.io/survey-creator/documentation/end-user-guide/user-interface#designer-tab) tab.
     *
     * Default value: `true`
     * @see activeTab
     * @see onSurveyInstanceCreated
     */
    showDesignerTab: boolean;
    /**
     * Specifies whether to display the [JSON Editor](https://surveyjs.io/survey-creator/documentation/end-user-guide/user-interface#json-editor-tab) tab.
     *
     * Default value: `true`
     * @see activeTab
     */
    showJSONEditorTab: boolean;
    showTestSurveyTab: boolean;
    /**
     * Specifies whether to display the [Preview](https://surveyjs.io/survey-creator/documentation/end-user-guide/user-interface#preview-tab) tab.
     *
     * Default value: `true`
     * @see activeTab
     * @see onSurveyInstanceCreated
     */
    get showPreviewTab(): boolean;
    set showPreviewTab(val: boolean);
    /**
     * Specifies whether to display the [Themes](https://surveyjs.io/survey-creator/documentation/end-user-guide/user-interface#themes-tab) tab.
     *
     * Default value: `false`
     *
     * Use the [`themeEditor`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#themeEditor) object to manage UI themes available in the Themes tab.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/change-form-theme/ (linkStyle))
     * @see activeTab
     * @see saveThemeFunc
     */
    showThemeTab: boolean;
    /**
     * Specifies whether users can modify the [Survey Creator theme](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#creatorTheme). Applies only if [`propertyGridNavigationMode`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#propertyGridNavigationMode) is `"buttons"`.
     *
     * Default value: `true`
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/dynamic-ui-customization/ (linkStyle))
     */
    showCreatorThemeSettings: boolean;
    /**
     * Specifies whether the "Zoom In", "Zoom Out", and "Zoom to 100%" buttons are available.
     *
     * Default value: `true`
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/expand-and-collapse-survey-elements/ (linkStyle))
     */
    allowZoom: boolean;
    /**
     * Specifies whether to display the [Translation](https://surveyjs.io/survey-creator/documentation/end-user-guide/user-interface#translation-tab) tab.
     *
     * Default value: `false`
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/create-multilingual-forms/ (linkStyle))
     * @see activeTab
     * @see clearTranslationsOnSourceTextChange
     */
    showTranslationTab: boolean;
    /**
     * Specifies whether to display the [Logic](https://surveyjs.io/survey-creator/documentation/end-user-guide/user-interface#logic-tab) tab.
     *
     * Default value: `true`
     * @see activeTab
     */
    showLogicTab: boolean;
    useTableViewInLogicTab: boolean;
    pageHoverDelay: number;
    /**
     * Allows users to edit choice values instead of choice texts on the design surface.
     *
     * Default value: `false` (users edit choice texts)
     *
     * If you enable this property, users cannot edit choice texts because the Property Grid hides the Text column for choices, rate values, columns and rows in [Single-Select Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model), and rows in [Multi-Select Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list) questions.
     * @see useElementTitles
     * @see onAllowInplaceEdit
     */
    inplaceEditChoiceValues: boolean;
    /**
     * @deprecated Use the [`inplaceEditChoiceValues`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#inplaceEditChoiceValues) property instead.
     */
    get inplaceEditForValues(): boolean;
    set inplaceEditForValues(val: boolean);
    /**
     * Specifies whether to display a table with survey results after completing a survey in the Preview tab.
     *
     * Default value: `true`
     */
    previewShowResults: boolean;
    private _showOneCategoryInPropertyGrid;
    get showOneCategoryInPropertyGrid(): boolean;
    set showOneCategoryInPropertyGrid(newValue: boolean);
    /**
     * Specifies how users navigate categories in the Property Grid.
     *
     * Accepted values:
     *
     * - `"accordion"`\
     * The Property Grid displays a stacked list of categories that users can expand or collapse to reveal nested properties.
     *
     * - `"buttons"` (default)\
     * The Property Grid displays the properties of a currently selected category. Users can switch between categories using buttons on the right side of the Property Grid.
     *
     * [Accordion Mode Demo](https://surveyjs.io/survey-creator/examples/property-grid-accordion-view/ (linkStyle))
     *
     * [Buttons Mode Demo](https://surveyjs.io/survey-creator/examples/free-nps-survey-template/ (linkStyle))
     */
    get propertyGridNavigationMode(): "buttons" | "accordion";
    set propertyGridNavigationMode(newValue: "buttons" | "accordion");
    get allowEditSurveyTitle(): boolean;
    set allowEditSurveyTitle(val: boolean);
    /**
     * Specifies whether users can see and edit the survey header and related survey properties.
     *
     * Default value: `true`
     */
    get showSurveyHeader(): boolean;
    set showSurveyHeader(val: boolean);
    /**
     * @deprecated Use the [`showSurveyHeader`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#showSurveyHeader) property instead.
     */
    get showSurveyTitle(): boolean;
    set showSurveyTitle(val: boolean);
    get haveCommercialLicense(): boolean;
    set haveCommercialLicense(val: boolean);
    get licenseText(): string;
    slk(val: string): void;
    /**
     * Specifies whether to automatically save a survey or theme JSON schema each time survey or theme settings are changed.
     *
     * Default value: `false`
     *
     * If you enable this property, Survey Creator calls the [`saveSurveyFunc`](#saveSurveyFunc) or [`saveThemeFunc`](#saveThemeFunc) function to save the survey or theme JSON schema. The schemas are saved with a 500-millisecond delay after users change settings. You can specify the [`autoSaveDelay`](#autoSaveDelay) property to increase or decrease the delay.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/set-how-survey-configuration-changes-are-saved/ (linkStyle))
     */
    autoSaveEnabled: boolean;
    /**
     * @deprecated Use the [`autoSaveEnabled`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#autoSaveEnabled) property instead.
     */
    get isAutoSave(): boolean;
    set isAutoSave(val: boolean);
    showOptions: boolean;
    showSearch: boolean;
    generateValidJSON: boolean;
    _currentAddQuestionType: string;
    /**
     * Specifies whether the "Add Question" button remembers the type of the most recently added question and uses it for subsequent questions.
     *
     * Default value: `true`
     * @see addNewQuestionLast
     */
    rememberLastQuestionType: boolean;
    get currentAddQuestionType(): string;
    set currentAddQuestionType(val: string);
    /**
     * Specifies a default device for survey preview in the Preview tab.
     *
     * Accepted values:
     *
     * - `"desktop"` (default)
     * - `"iPhoneSE"`
     * - `"iPhone15"`
     * - `"iPhone15Plus"`
     * - `"iPad"`
     * - `"iPadMini"`
     * - `"androidPhone"`
     * - `"androidTablet"`
     * - `"microsoftSurface"`
     */
    previewDevice: string;
    /**
     * Specifies the orientation of the selected device in the Preview tab.
     *
     * Accepted values:
     *
     * - `"landscape"` (default)
     * - `"portrait"`
     */
    previewOrientation: "landscape" | "portrait";
    set startEditTitleOnQuestionAdded(value: boolean);
    get startEditTitleOnQuestionAdded(): boolean;
    private startEditTitleOnQuestionAddedValue;
    private isRTLValue;
    private alwaySaveTextInPropertyEditorsValue;
    private toolbarValue;
    responsivityManager: CreatorResponsivityManager;
    footerToolbar: ActionContainer;
    private changePageModifications;
    private pageEditModeValue;
    /**
     * Specifies how Survey Creator users edit survey pages.
     *
     * Accepted values:
     *
     * - `"standard"` (default)\
     * Questions and panels are divided between pages. Users can scroll the design surface to reach a required page.
     *
     * - `"single"`\
     * All questions and panels belong to a single page. Users cannot add or remove pages.
     *
     * - `"bypage"`\
     * Questions and panels are divided between pages. Users can use the page navigator to switch to a required page.
     *
     * [View Page-By-Page Mode Demo](https://surveyjs.io/survey-creator/examples/page-level-editing/ (linkStyle))
     * @see allowModifyPages
     */
    get pageEditMode(): "standard" | "single" | "bypage";
    set pageEditMode(val: "standard" | "single" | "bypage");
    surveyValue: SurveyModel;
    get toolbarItems(): Array<Action>;
    get toolbar(): ActionContainer;
    protected _findAction(id: string): Action;
    dragDropSurveyElements: DragDropSurveyElements;
    dragDropChoices: DragDropChoices;
    private selectedElementValue;
    private newQuestions;
    private newPanels;
    private newQuestionChangedNames;
    private selectionHistoryControllerValue;
    private saveSurveyFuncValue;
    private saveThemeFuncValue;
    get viewType(): string;
    set viewType(val: string);
    get showingViewName(): string;
    get isDesignerShowing(): boolean;
    showDesigner(): void;
    get isTestSurveyShowing(): boolean;
    get isPreviewShowing(): boolean;
    showTestSurvey(): void;
    showPreview(): void;
    protected plugins: {
        [name: string]: ICreatorPlugin;
    };
    /**
     * @deprecated Use the [`addTab(tabOptions)`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#addTab) method instead.
     */
    addPluginTab(name: string, plugin: ICreatorPlugin, title?: string, componentName?: string, index?: number): void;
    /**
     * Adds a custom tab to Survey Creator.
     *
     * This method accepts an `ITabOptions` object with the following properties:
     *
     * - `name`: `string`\
     * A unique tab ID.
     *
     * - `plugin`: `ICreatorPlugin`\
     * An object that allows you to handle user interactions with the tab.
     *
     * - `title`: `string`\
     * *(Optional)* A tab caption. If `title` is undefined, the `name` property value is displayed instead. To localize the caption, add its translations to the `ed` object within [localization dictionaries](https://github.com/surveyjs/survey-creator/tree/90de47d2c9da49b06a7f97414026d70f7acf05c6/packages/survey-creator-core/src/localization) and pass `ed.propertyName` as the `title` property.
     *
     * - `iconName`: `string`\
     * *(Optional)* An [icon name](https://surveyjs.io/form-library/documentation/icons). Icons are used when the tab bar doesn't have enough width to display tab titles.
     *
     * - `componentName`: `string`\
     * *(Optional)* The name of the component that renders tab markup. Default value: `"svc-tab-" + name`.
     *
     * - `index`: `number`\
     * *(Optional)* A zero-based index that specifies the tab's position relative to other tabs.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/modify-tab-bar/ (linkStyle))
     * @param tabOptions An object that configures the custom tab.
     */
    addTab(tabOptions: ITabOptions): void;
    addPlugin(name: string, plugin: ICreatorPlugin): void;
    private removePlugin;
    private getTabIndex;
    getPlugin<P extends ICreatorPlugin = ICreatorPlugin>(name: string): P;
    private fixPluginName;
    /**
     * An event that is raised before a survey element (a question, panel, or page) is deleted.
     * @see deleteElement
     */
    onElementDeleting: EventBase<SurveyCreatorModel, ElementDeletingEvent>;
    /**
     * An event that is raised when Survey Creator sets the read-only status for a survey element property. Use this event to change the read-only status for individual properties.
     */
    onPropertyGetReadOnly: EventBase<SurveyCreatorModel, PropertyGetReadOnlyEvent>;
    /**
     * @deprecated Use the [`onPropertyGetReadOnly`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onPropertyGetReadOnly) event instead.
     */
    onGetPropertyReadOnly: EventBase<SurveyCreatorModel, GetPropertyReadOnlyEvent>;
    /**
     * An event that is raised when Survey Creator [instantiates a survey to display a UI element](https://surveyjs.io/survey-creator/documentation/property-grid-customization#add-custom-properties-to-the-property-grid). Handle this event to customize the UI element by modifying the survey.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [Design Mode Survey Instance](https://surveyjs.io/survey-creator/documentation/customize-survey-creation-process#design-mode-survey-instance (linkStyle))
     *
     * [Preview Mode Survey Instance](https://surveyjs.io/survey-creator/documentation/customize-survey-creation-process#preview-mode-survey-instance (linkStyle))
     *
     * > If you want this event raised at startup, assign a survey JSON schema to the [`JSON`](#JSON) property *after* you add a handler to the event. If the JSON schema should be empty, specify the `JSON` property with an empty object.
     * @see onSurveyInstanceSetupHandlers
     */
    onSurveyInstanceCreated: EventBase<SurveyCreatorModel, SurveyInstanceCreatedEvent>;
    /**
     * An event that lets you attach event handlers to a [survey instance used for displaying a Survey Creator UI element](https://surveyjs.io/survey-creator/documentation/property-grid-customization#add-custom-properties-to-the-property-grid).
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * > This event is raised *before* the survey instance is initialized with a survey JSON schema. Therefore, you cannot access individual questions, panels, and pages within the event handler. If you need to customize those survey elements, handle the [`onSurveyInstanceCreated`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onSurveyInstanceCreated) event instead.
     */
    onSurveyInstanceSetupHandlers: EventBase<SurveyCreatorModel, SurveyInstanceCreatedEvent>;
    /**
     * An event that is raised when Survey Creator obtains a survey element name to display it in the UI.
     *
     * Handle this event to replace survey element names in the UI with custom display texts. If you only want to replace the names with survey element titles, enable the [`useElementTitles`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#useElementTitles) property instead of handling this event.
     */
    onElementGetDisplayName: EventBase<SurveyCreatorModel, ElementGetDisplayNameEvent>;
    /**
     * @deprecated Use the [`onElementGetDisplayName`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onElementGetDisplayName) event instead.
     */
    onGetObjectDisplayName: EventBase<SurveyCreatorModel, ElementGetDisplayNameEvent>;
    onHtmlToMarkdown: EventBase<SurveyCreatorModel, any>;
    /**
     * An event that is raised when Survey Creator obtains the expand/collapse state of a survey element on the design surface. Handle this event to set a required state.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/expand-and-collapse-survey-elements/ (linkStyle))
     * @see [ICreatorOptions.collapseQuestions](https://surveyjs.io/survey-creator/documentation/api-reference/icreatoroptions#collapseQuestions)
     * @see [ICreatorOptions.collapsePanels](https://surveyjs.io/survey-creator/documentation/api-reference/icreatoroptions#collapsePanels)
     * @see [ICreatorOptions.collapsePages](https://surveyjs.io/survey-creator/documentation/api-reference/icreatoroptions#collapsePages)
     * @see expandCollapseButtonVisibility
     * @see collapseAll
     * @see expandAll
     */
    onElementGetExpandCollapseState: EventBase<SurveyCreatorModel, ElementGetExpandCollapseStateEvent>;
    /**
     * An event that is raised when Survey Creator obtains permitted operations for a survey element. Use this event to disable user interactions with a question, panel, or page on the design surface.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * To disable a user interaction, set the correponding `allow...` property to `false`.
     *
     * [Specify Adorner Visibility](https://surveyjs.io/survey-creator/documentation/customize-survey-creation-process#specify-adorner-availability (linkStyle))
     * @see onCollectionItemAllowOperations
     */
    onElementAllowOperations: EventBase<SurveyCreatorModel, ElementAllowOperationsEvent>;
    /**
     * An event that is raised when Survey Creator obtains [adorners](https://surveyjs.io/survey-creator/documentation/customize-survey-creation-process#specify-adorner-availability) for a survey element. Use this event to hide and modify predefined adorners or add a custom adorner.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/create-custom-adorners/ (linkStyle))
     * @see onElementAllowOperations
     * @see onPageGetFooterActions
     */
    onElementGetActions: EventBase<SurveyCreatorModel, ElementGetActionsEvent>;
    /**
     * @deprecated Use the [`onElementGetActions`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onElementGetActions) event instead.
     */
    onDefineElementMenuItems: EventBase<SurveyCreatorModel, DefineElementMenuItemsEvent>;
    /**
     * An event that is raised when Survey Creator adds properties to a survey element selected on the design surface. Handle this event if you want to cancel the addition of certain properties and thus [hide them from the Property Grid](https://surveyjs.io/survey-creator/documentation/property-grid-customization#hide-properties-from-the-property-grid).
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/remove-properties-from-property-grid/ (linkStyle))
     */
    onPropertyShowing: EventBase<SurveyCreatorModel, PropertyShowingEvent>;
    onCanShowProperty: EventBase<SurveyCreatorModel, any>;
    /**
     * @deprecated Use the [`onPropertyShowing`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onPropertyShowing) event instead.
     */
    onShowingProperty: EventBase<SurveyCreatorModel, PropertyAddingEvent>;
    /**
     * @deprecated Use the [`onSurveyInstanceCreated`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onSurveyInstanceCreated) event instead.
     */
    onPropertyGridSurveyCreated: EventBase<SurveyCreatorModel, PropertyGridSurveyCreatedEvent>;
    /**
     * An event that is raised when a property editor is created in the Property Grid. Use this event to modify the property editor or add event handlers to it.
     * @see onConfigureTablePropertyEditor
     * @see onSurveyInstanceCreated
     */
    onPropertyEditorCreated: EventBase<SurveyCreatorModel, PropertyEditorCreatedEvent>;
    /**
     * An event that is raised when title actions are added to a property editor. Title actions are most often used to reveal property hints. Handle this event you want to add, remove, or modify the title actions.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [View Demo](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onPropertyEditorUpdateTitleActions (linkStyle))
     */
    onPropertyEditorUpdateTitleActions: EventBase<SurveyCreatorModel, PropertyEditorUpdateTitleActionsEvent>;
    /**
     * An event that is raised before Survey Creator displays a pop-up window called from the Property Grid. This window allows users to edit choices, conditions, etc. Use this event to customize the pop-up window, for example, add custom action buttons.
     */
    onPropertyGridShowPopup: EventBase<SurveyCreatorModel, PropertyGridShowPopupEvent>;
    /**
     * @deprecated Use the [`onPropertyGridShowPopup`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onPropertyGridShowPopup) event instead.
     */
    onPropertyGridShowModal: EventBase<SurveyCreatorModel, PropertyGridShowPopupEvent>;
    onCanDeleteItem: EventBase<SurveyCreatorModel, any>;
    onCollectionItemDeleting: EventBase<SurveyCreatorModel, any>;
    /**
     * An event that is raised when Survey Creator obtains permitted operations for a collection item (a choice option in Choices, a column or row in Columns, etc.). Use this event to prevent users from adding, deleting, or editing a particular collection item.
     * @see onElementAllowOperations
     */
    onCollectionItemAllowOperations: EventBase<SurveyCreatorModel, CollectionItemAllowOperationsEvent>;
    /**
     * An event that is raised when users add a new collection item (a choice option to Choices, a column or row to Columns, etc.). Use this event to modify this item.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * > This event is not raised when users add a new column to a [Multi-Select Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list) or [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model). For these cases, handle the [`onMatrixColumnAdded`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onMatrixColumnAdded) event instead.
     * @see onFastEntryFinished
     * @see onCollectionItemAllowOperations
     */
    onItemValueAdded: EventBase<SurveyCreatorModel, CollectionItemAddedEvent>;
    /**
     * An event that is raised when users finish editing collection items (choices, rows, columns) in a pop-up window.
     *
     * Survey authors can specify collection items using a table UI in Property Grid (see the [`onItemValueAdded`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onItemValueAdded) event) or a multi-line text editor in a pop-up window. Each line in the editor specifies the value and display text of one collection item in the following format: `value|text`. Use the `onFastEntryFinished` event to process the entered text lines as required.
     */
    onFastEntryFinished: EventBase<SurveyCreatorModel, FastEntryFinishedEvent>;
    /**
     * An event that is raised when users add a new column to a [Multi-Select Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list) or [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model). Use this event to modify this column.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * > This event is not raised when users add a new column to a [Single-Select Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-question-model). For this case, handle the [`onItemValueAdded`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onItemValueAdded) event instead.
     * @see onCollectionItemAllowOperations
     */
    onMatrixColumnAdded: EventBase<SurveyCreatorModel, MatrixColumnAddedEvent>;
    /**
     * @deprecated Use the [`onConfigureTablePropertyEditor`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onConfigureTablePropertyEditor) event instead.
     */
    onSetPropertyEditorOptions: EventBase<SurveyCreatorModel, ConfigureTablePropertyEditorEvent>;
    /**
     * An event that is raised when a table property editor is created in the Property Grid. Use this event to configure the table property editor.
     * @see onPropertyEditorCreated
     */
    onConfigureTablePropertyEditor: EventBase<SurveyCreatorModel, ConfigureTablePropertyEditorEvent>;
    onGenerateNewName: EventBase<SurveyCreatorModel, any>;
    /**
     * An event that is raised when Survey Creator validates a modified value of a survey element property. Use this event to display a custom error message when the value is incorrect.
     * @see onBeforePropertyChanged
     * @see onAfterPropertyChanged
     */
    onPropertyDisplayCustomError: EventBase<SurveyCreatorModel, PropertyDisplayCustomErrorEvent>;
    /**
     * @deprecated Use the [`onPropertyDisplayCustomError`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onPropertyDisplayCustomError) event instead.
     */
    onPropertyValidationCustomError: EventBase<SurveyCreatorModel, PropertyDisplayCustomErrorEvent>;
    /**
     * An event that is raised each time a user modifies a survey element property. Use this event to validate or correct a property value while the user changes it.
     * @see onPropertyDisplayCustomError
     * @see onAfterPropertyChanged
     */
    onBeforePropertyChanged: EventBase<SurveyCreatorModel, BeforePropertyChangedEvent>;
    /**
     * @deprecated Use the [`onBeforePropertyChanged`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onBeforePropertyChanged) event instead.
     */
    onPropertyValueChanging: EventBase<SurveyCreatorModel, PropertyValueChangingEvent>;
    /**
     * An event that is raised after a survey element property has changed.
     * @see onPropertyDisplayCustomError
     * @see onBeforePropertyChanged
     */
    onAfterPropertyChanged: EventBase<SurveyCreatorModel, AfterPropertyChangedEvent>;
    /**
     * @deprecated Use the [`onAfterPropertyChanged`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onAfterPropertyChanged) event instead.
     */
    onSurveyPropertyValueChanged: EventBase<SurveyCreatorModel, PropertyValueChangedEvent>;
    /**
     * An event that is raised when a condition editor renders a list of questions and variables available for selection. Use this event to modify this list.
     */
    onConditionGetQuestionList: EventBase<SurveyCreatorModel, ConditionGetQuestionListEvent>;
    /**
     * @deprecated Use the [`onConditionGetQuestionList`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onConditionGetQuestionList) event instead.
     */
    onConditionQuestionsGetList: EventBase<SurveyCreatorModel, ConditionGetQuestionListEvent>;
    onConditionGetTitle: EventBase<SurveyCreatorModel, any>;
    /**
     * An event that is raised when Survey Creator populates a condition editor with operators. Use this event to hide individual condition operators.
     */
    onGetConditionOperator: EventBase<SurveyCreatorModel, GetConditionOperatorEvent>;
    /**
     * An event that is raised when the Logic tab constructs a user-friendly display text for a logic rule. Use this event to modify this display text.
     */
    onLogicRuleGetDisplayText: EventBase<SurveyCreatorModel, LogicRuleGetDisplayTextEvent>;
    /**
     * @deprecated Use the [`onLogicRuleGetDisplayText`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onLogicRuleGetDisplayText) event instead.
     */
    onLogicItemDisplayText: EventBase<SurveyCreatorModel, LogicRuleGetDisplayTextEvent>;
    /**
      * An event that is raised when users modify survey or theme settings.
      * @see state
      */
    onModified: EventBase<SurveyCreatorModel, ModifiedEvent>;
    /**
     * An event that is raised when users add a question to the survey. Use this event to customize the question.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [Customize Survey Elements on Creation](https://surveyjs.io/survey-creator/documentation/customize-survey-creation-process#customize-survey-elements-on-creation (linkStyle))
     */
    onQuestionAdded: EventBase<SurveyCreatorModel, QuestionAddedEvent>;
    /**
     * An event that is raised when users add a [Panel](https://surveyjs.io/form-library/documentation/api-reference/panel-model) element to the survey. Use this event to customize the panel.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [Customize Survey Elements on Creation](https://surveyjs.io/survey-creator/documentation/customize-survey-creation-process#customize-survey-elements-on-creation (linkStyle))
     */
    onPanelAdded: EventBase<SurveyCreatorModel, PanelAddedEvent>;
    /**
     * An event that is raised when a new page is added to the survey. Use this event to customize the page.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [Customize Survey Elements on Creation](https://surveyjs.io/survey-creator/documentation/customize-survey-creation-process#customize-survey-elements-on-creation (linkStyle))
     */
    onPageAdded: EventBase<SurveyCreatorModel, PageAddedEvent>;
    /**
     * An event that is raised when a [question's type is being changed](https://surveyjs.io/survey-creator/documentation/end-user-guide/user-interface#how-to-change-the-question-type).
     */
    onQuestionConverting: EventBase<SurveyCreatorModel, QuestionConvertingEvent>;
    /**
     * An event that is raised when Survey Creator renders action buttons under each page on the design surface. Use this event to add, remove, or modify the buttons.
     * @see onElementGetActions
     */
    onPageGetFooterActions: EventBase<SurveyCreatorModel, PageGetFooterActionsEvent>;
    /**
     *@deprecated Use the [`onPageGetFooterActions`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onPageGetFooterActions) event instead.
     */
    onGetPageActions: EventBase<SurveyCreatorModel, PageGetFooterActionsEvent>;
    /**
     * @deprecated Use the [`onSurveyInstanceCreated`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onSurveyInstanceCreated) event instead.
     */
    onDesignerSurveyCreated: EventBase<SurveyCreatorModel, DesignerSurveyCreatedEvent>;
    /**
     * @deprecated Use the [`onSurveyInstanceCreated`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onSurveyInstanceCreated) event instead.
     */
    onPreviewSurveyCreated: EventBase<SurveyCreatorModel, PreviewSurveyCreatedEvent>;
    onTestSurveyCreated: EventBase<SurveyCreatorModel, any>;
    /**
     * An event that is raised when Survey Creator [displays a toast notification](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#notify). Use this event to implement custom toast notification.
     * @see notify
     */
    onNotify: EventBase<SurveyCreatorModel, NotifyEvent>;
    /**
     * An event that is raised before a survey element (question, panel, page, or the survey itself) is selected. Use this event if you want to select a different survey element.
     * @see onElementSelected
     * @see selectedElement
     */
    onElementSelecting: EventBase<SurveyCreatorModel, ElementSelectingEvent>;
    /**
     * @deprecated Use the [`onElementSelecting`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onElementSelecting) event instead.
     */
    onSelectedElementChanging: EventBase<SurveyCreatorModel, ElementFocusingEvent>;
    /**
     * An event that is raised after a survey element (a question, panel, page, or the survey itself) is selected.
     * @see onElementSelecting
     */
    onElementSelected: EventBase<SurveyCreatorModel, ElementSelectedEvent>;
    /**
     * @deprecated Use the [`onElementSelected`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onElementSelected) event instead.
     */
    onSelectedElementChanged: EventBase<SurveyCreatorModel, ElementFocusedEvent>;
    /**
     * An event that is raised when Survey Creator opens a dialog window for users to select files.
     * @see onUploadFile
     * @see uploadFiles
     */
    onOpenFileChooser: EventBase<SurveyCreatorModel, OpenFileChooserEvent>;
    /**
     * An event that is raised when a user selects a file to upload. Use this event to upload the file to your server.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/file-upload/ (linkStyle))
     * @see uploadFiles
     */
    onUploadFile: EventBase<SurveyCreatorModel, UploadFileEvent>;
    /**
     * An event that is raised when the Translation tab displays a property for translation. Use this event to control the property visibility.
     */
    onTranslationStringVisibility: EventBase<SurveyCreatorModel, TranslationStringVisibilityEvent>;
    onTranslationLocaleInitiallySelected: EventBase<SurveyCreatorModel, any>;
    /**
     * An event that is raised before a translated string is imported from a CSV file. Use this event to modify the string to be imported or cancel the import.
     * @see onTranslationExportItem
     * @see onTranslationImported
     */
    onTranslationImportItem: EventBase<SurveyCreatorModel, TranslationImportItemEvent>;
    /**
     * An event that is raised after all translated strings are imported from a CSV file.
     * @see onTranslationImportItem
     * @see onTranslationExportItem
     */
    onTranslationImported: EventBase<SurveyCreatorModel, TranslationImportedEvent>;
    /**
     * An event that is raised before a translated string is exported to a CSV file. Use this event to modify the string to be exported.
     * @see onTranslationImportItem
     */
    onTranslationExportItem: EventBase<SurveyCreatorModel, TranslationExportItemEvent>;
    /**
     * An event that allows you to integrate a machine translation service, such as Google Translate or Microsoft Translator, into Survey Creator.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * Within the event handler, you need to pass translation strings and locale information to the translation service API. The service should return an array of translated strings that you need to pass to the `options.callback` function. The following code shows how to integrate the Microsoft Translator service into Survey Creator:
     *
     * ```js
     * import { SurveyCreatorModel } from "survey-creator-core";
     * const creatorOptions = { ... };
     * const creator = new SurveyCreatorModel(creatorOptions);
     *
     * const apiKey = "<your-microsoft-translator-api-key>";
     * const resourceRegion = "<your-azure-region>";
     * const endpoint = "https://api.cognitive.microsofttranslator.com/";
     * creator.onMachineTranslate.add((_, options) => {
     *   // Prepare strings for Microsoft Translator as an array of objects: [{ Text: "text to translate" }]
     *   const data = [];
     *   options.strings.forEach(str => { data.push({ Text: str }); });
     *   // Include required locales in the URL
     *   const params = "api-version=3.0&from=" + options.fromLocale + "&to=" + options.toLocale;
     *   const url = endpoint + "/translate?" + params;
     *   fetch(url, {
     *     method: "POST",
     *     headers: {
     *       "Content-Type": "application/json",
     *       "Ocp-Apim-Subscription-Key": apiKey,
     *       "Ocp-Apim-Subscription-Region": resourceRegion,
     *       "X-ClientTraceId": crypto.randomUUID()
     *     },
     *     body: JSON.stringify(data)
     *   }).then(response => response.json())
     *     .then(data => {
     *       // Convert data received from Microsoft Translator to a flat array
     *       const translatedStrings = [];
     *       for (let i = 0; i < data.length; i++) {
     *         translatedStrings.push(data[i].translations[0].text);
     *       }
     *       // Pass translated strings to Survey Creator
     *       options.callback(translatedStrings);
     *
     *     }).catch(error => {
     *       // If translation was unsuccessful:
     *       options.callback();
     *       alert("Could not translate strings to the " + options.toLocale + " locale");
     *     });
     * });
     * ```
     *
     * [Multilingual Form Demo](https://surveyjs.io/survey-creator/examples/create-multilingual-forms/ (linkStyle))
     *
     * [AI-Powered Translation Demo](https://surveyjs.io/survey-creator/examples/ai-translation/ (linkStyle))
     *
     * > Survey Creator does not include a machine translation service out of the box. Our component only provides a UI for calling the service API.
     * @see startMachineTranslationTo
     */
    onMachineTranslate: EventBase<SurveyCreatorModel, MachineTranslateEvent>;
    /**
     * An event that is raised before a string translation is changed. Use this event to override a new translation value.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * Refer to the following help topics for more information on localization:
     *
     * - [Localization & Globalization in SurveyJS Form Library](https://surveyjs.io/form-library/documentation/survey-localization)
     * - [Localization & Globalization in Survey Creator](https://surveyjs.io/survey-creator/documentation/localization)
     */
    onTranslationItemChanging: EventBase<SurveyCreatorModel, TranslationItemChangingEvent>;
    /**
     * An event that is raised when users drag and drop survey elements within the design surface. Use this event to control drag and drop operations.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/page-break-and-page-merge/ (linkStyle))
     * @see onDragStart
     * @see onDragEnd
     */
    onDragDropAllow: EventBase<SurveyCreatorModel, DragDropAllowEvent>;
    onDragOverLocationCalculating: EventBase<SurveyCreatorModel, any>;
    /**
     * An event that allows you to create a custom message panel.
     *
     * For information on event handler parameters, refer to descriptions within the interface.
     *
     * A message panel is displayed within a question box on the design surface. It contains a text message and an optional action link. The following image illustrates a built-in message panel that appears when a question sources its choice options from another question or from a web service:
     *
     * <img src="https://surveyjs.io/stay-updated/release-notes/articles/v1.9.126/creator-message-panel.png" alt="Survey Creator: A message panel" width="75%">
     *
     * To create a custom message panel, handle the `onCreateCustomMessagePanel` event. This event is raised for questions whose `isMessagePanelVisible` property set to `true`. The following code shows how to enable this property based on a condition. This code implements a custom data source selector for select-based questions (Dropdown, Checkboxes, Radio Button Group). When a survey author selects any data source other than "Custom", the `isMessagePanelVisible` property becomes enabled, indicating that the `onCreateCustomMessagePanel` event must be raised. A function that handles this event specifies custom message and action link texts and `onClick` event handler:
     *
     * ```js
     * import { Serializer } from "survey-core";
     * import { SurveyCreatorModel } from "survey-creator-core";
     *
     * Serializer.addProperty("selectbase", {
     *   name: "choicesDataSource",
     *   displayName: "Data source",
     *   category: "choices",
     *   choices: [
     *     { text: "Country", value: "country" },
     *     { text: "Region", value: "region" },
     *     { text: "City", value: "city" },
     *     { text: "Custom", value: "custom" }
     *   ],
     *   onSetValue: function (obj: any, value: any) {
     *     // Set the custom property value
     *     obj.setPropertyValue("choicesDataSource", value);
     *     // Display the message panel based on a condition
     *     obj.setPropertyValue("isMessagePanelVisible", value !== "custom");
     *   }
     * });
     *
     * const creator = new SurveyCreatorModel();
     *
     * creator.onCreateCustomMessagePanel.add((_, options) => {
     *   options.messageText = "Choices for this question are loaded from a predefined data source. ";
     *   options.actionText = "Go to settings";
     *   // Focus the "Data source" editor within the Property Grid
     *   options.onClick = () => {
     *     creator.selectElement(options.question, "choicesDataSource");
     *   };
     * });
     * ```
     */
    onCreateCustomMessagePanel: EventBase<SurveyCreatorModel, CreateCustomMessagePanelEvent>;
    /**
     * An event that is raised when users change a property in a [Survey Creator theme](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#creatorTheme).
     */
    onCreatorThemePropertyChanged: EventBase<SurveyCreatorModel, CreatorThemePropertyChangedEvent>;
    /**
     * An event that is raised when users select a [Survey Creator theme](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#creatorTheme) from the drop-down list of UI themes.
     */
    onCreatorThemeSelected: EventBase<SurveyCreatorModel, CreatorThemeSelectedEvent>;
    getSurveyJSONTextCallback: () => {
        text: string;
        isModified: boolean;
    };
    setSurveyJSONTextCallback: (text: string) => void;
    /**
     * Limits the number of items in a logical condition.
     *
     * Default value: -1 (unlimited)
     */
    logicMaxItemsInCondition: number;
    /**
     * @deprecated Use the [`logicMaxItemsInCondition`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#logicMaxItemsInCondition) property instead.
     */
    get maxLogicItemsInCondition(): number;
    set maxLogicItemsInCondition(val: number);
    /**
     * @deprecated Use the [`useElementTitles`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#useElementTitles) property instead.
     */
    showObjectTitles: boolean;
    /**
     * @deprecated Use the [`useElementTitles`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#useElementTitles) property instead.
     */
    showTitlesInExpressions: boolean;
    /**
     * Specifies whether Survey Creator UI elements display survey, page, and question titles instead of their names.
     *
     * Default value: `false`
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/dynamically-modify-newly-added-questions/ (linkStyle))
     * @see onElementGetDisplayName
     */
    useElementTitles: boolean;
    /**
     * Limits the number of visible choices. Users can click "Show more" to view hidden choices.
     *
     * Set this property to -1 if you do not want to hide any choices.
     *
     * Default value: 10
     */
    maxVisibleChoices: number;
    /**
     * Specifies whether users can edit expressions in the Logic tab as plain text.
     *
     * If you set this property to `false`, users can only use UI elements to edit logical expressions.
     *
     * Default value: `true`
     * @see showLogicTab
     */
    logicAllowTextEditExpressions: boolean;
    /**
     * @deprecated Use the [`logicAllowTextEditExpressions`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#logicAllowTextEditExpressions) property instead.
     */
    get allowEditExpressionsInTextEditor(): boolean;
    set allowEditExpressionsInTextEditor(val: boolean);
    /**
     * Limits the number of columns that users can add to [Single-Select Matrix](https://surveyjs.io/Documentation/Library?id=questionmatrixmodel), [Multi-Select Matrix](https://surveyjs.io/Documentation/Library?id=questionmatrixdropdownmodel), and [Dynamic Matrix](https://surveyjs.io/Documentation/Library?id=questionmatrixdynamicmodel) questions.
     *
     * Default value: 0 (unlimited, taken from `settings.propertyGrid.maxColumns`)
     */
    maxColumns: number;
    /**
     * @deprecated Use the [`maxColumns`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#maxColumns) property instead.
     */
    get maximumColumnsCount(): number;
    set maximumColumnsCount(val: number);
    /**
     * Limits the number of choices that users can add to [Checkboxes](https://surveyjs.io/Documentation/Library?id=questioncheckboxmodel), [Dropdown](https://surveyjs.io/Documentation/Library?id=questiondropdownmodel), and [Radio Button Group](https://surveyjs.io/Documentation/Library?id=questionradiogroupmodel) questions.
     *
     * Default value: 0 (unlimited, taken from `settings.propertyGrid.maxChoices`)
     */
    maxChoices: number;
    /**
     * @deprecated Use the [`maxChoices`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#maxChoices) property instead.
     */
    get maximumChoicesCount(): number;
    set maximumChoicesCount(val: number);
    /**
     * Limits the minimum number of choices in [Checkboxes](https://surveyjs.io/Documentation/Library?id=questioncheckboxmodel), [Dropdown](https://surveyjs.io/Documentation/Library?id=questiondropdownmodel), and [Radio Button Group](https://surveyjs.io/Documentation/Library?id=questionradiogroupmodel) questions. Set this property if users should not delete choices below the specified limit.
     *
     * Default value: 0 (unlimited, taken from `settings.propertyGrid.minChoices`)
     */
    minChoices: number;
    /**
     * @deprecated Use the [`minChoices`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#minChoices) property instead.
     */
    get minimumChoicesCount(): number;
    set minimumChoicesCount(val: number);
    /**
     * Limits the number of rows that users can add to [Single-Select Matrix](https://surveyjs.io/Documentation/Library?id=questionmatrixmodel) and [Multi-Select Matrix](https://surveyjs.io/Documentation/Library?id=questionmatrixdropdownmodel) questions.
     *
     * Default value: 0 (unlimited, taken from `settings.propertyGrid.maxRows`)
     */
    maxRows: number;
    /**
     * @deprecated Use the [`maxRows`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#maxRows) property instead.
     */
    get maximumRowsCount(): number;
    set maximumRowsCount(val: number);
    /**
     * Limits the number of rate values that users can add to [Rating Scale](https://surveyjs.io/Documentation/Library?id=questionratingmodel) questions.
     *
     * Default value: 0 (unlimited, taken from `settings.propertyGrid.maxRateValues`)
     */
    maxRateValues: number;
    /**
     * @deprecated Use the [`maxRateValues`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#maxRateValues) property instead.
     */
    get maximumRateValues(): number;
    set maximumRateValues(val: number);
    /**
     * @deprecated Use the [`maxPanelNestingLevel`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#maxPanelNestingLevel) property instead.
     */
    maxNestedPanels: number;
    /**
     * Specifies the maximum depth allowed for nested [Panels](https://surveyjs.io/form-library/documentation/api-reference/panel-model) and [Dynamic Panels](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model) in the survey.
     *
     * This property behaves as follows:
     *
     * - A value of -1 applies no restriction on nesting depth.
     * - A value of 0 means that Panels and Dynamic Panels cannot contain other panels&mdash;only questions are allowed.
     * - Positive integers specify the maximum nesting level.
     *
     * Default value: -1 (unlimited)
     *
     * If you don't want users to nest certain element types within panels, specify the [`forbiddenNestedElements`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#forbiddenNestedElements) property.
     */
    maxPanelNestingLevel: number;
    /**
     * Specifies which element types are forbidden from being nested inside [Panels](https://surveyjs.io/form-library/documentation/api-reference/panel-model) and [Dynamic Panels](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model).
     *
     * This property is an object with the following structure:
     *
     * - `panel`: An array of element types that cannot be nested within a regular panel.
     * - `paneldynamic`: An array of element types that cannot be nested within a dynamic panel.
     *
     * In the following example, dynamic panels are disallowed inside regular panels, and both regular and dynamic panels are disallowed inside a dynamic panel:
     *
     * ```js
     * import { SurveyCreatorModel } from "survey-creator-core";
     * const creatorOptions = { ... };
     * const creator = new SurveyCreatorModel(creatorOptions);
     *
     * creator.forbiddenNestedElements = {
     *   panel: [ "paneldynamic" ],
     *   paneldynamic: [ "panel", "paneldynamic" ]
     * };
     * ```
     * @see maxPanelNestingLevel
     */
    forbiddenNestedElements: {
        panel: string[];
        paneldynamic: string[];
    };
    showPagesInTestSurveyTab: boolean;
    /**
     * Specifies whether to show a page selector at the bottom of the Preview tab.
     *
     * Default value: `true`
     */
    get previewAllowSelectPage(): boolean;
    set previewAllowSelectPage(val: boolean);
    /**
     * @deprecated Use the [`previewAllowSelectPage`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#previewAllowSelectPage) property instead.
     */
    get showPagesInPreviewTab(): boolean;
    set showPagesInPreviewTab(val: boolean);
    showSimulatorInTestSurveyTab: boolean;
    /**
     * Specifies whether the Preview tab displays a Device button that allows users to preview the survey on different device types.
     *
     * Default value: `true`
     */
    get previewAllowSimulateDevices(): boolean;
    set previewAllowSimulateDevices(val: boolean);
    /**
     * @deprecated Use the [`previewAllowSimulateDevices`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#previewAllowSimulateDevices) property instead.
     */
    get showSimulatorInPreviewTab(): boolean;
    set showSimulatorInPreviewTab(val: boolean);
    /**
     * @deprecated Survey Creator no longer supports switching between UI themes in the Preview tab.
     */
    previewTheme: string;
    /**
     * @deprecated Survey Creator no longer supports switching between UI themes in the Preview tab.
     */
    get themeForPreview(): string;
    set themeForPreview(val: string);
    /**
     * An object that enables you to manage UI themes. Refer to the following API section for information on available properties, methods, and events: [`ThemeTabPlugin`](https://surveyjs.io/survey-creator/documentation/api-reference/themetabplugin).
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/save-custom-theme/ (linkStyle))
     * @see showThemeTab
     * @see saveThemeFunc
     */
    get themeEditor(): ThemeTabPlugin;
    /**
     * A function that is called each time users click the [Save button](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#showSaveButton) or [auto-save](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#autoSaveEnabled) is triggered to save a theme JSON object.
     *
     * For more information, refer to the [Save and Load Custom Themes](https://surveyjs.io/survey-creator/documentation/theme-editor#save-and-load-custom-themes) help topic.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/change-form-theme/ (linkStyle))
     * @see showThemeTab
     * @see themeEditor
     * @see saveSurveyFunc
     */
    get saveThemeFunc(): any;
    set saveThemeFunc(value: any);
    hasPendingThemeChanges: boolean;
    private _theme;
    /**
     * Gets or sets a [theme](https://surveyjs.io/form-library/documentation/api-reference/itheme) for the survey being configured.
     *
     * [Theme Editor](https://surveyjs.io/survey-creator/documentation/theme-editor (linkStyle))
     * @see showThemeTab
     * @see themeEditor
     * @see saveThemeFunc
     */
    get theme(): ITheme;
    set theme(newTheme: ITheme);
    /**
     * Applies a [theme](https://surveyjs.io/form-library/documentation/api-reference/itheme) to the survey being configured.
     *
     * [Theme Editor](https://surveyjs.io/survey-creator/documentation/theme-editor (linkStyle))
     * @param surveyTheme An [`ITheme`](https://surveyjs.io/form-library/documentation/api-reference/itheme) object with theme settings.
     * @see theme
     * @see themeEditor
     * @see saveThemeFunc
     */
    applyTheme(surveyTheme: ITheme): void;
    private _doSaveThemeCore;
    /**
     * Calls the [`saveThemeFunc`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#saveThemeFunc) function to save the theme JSON schema.
     * @see saveSurvey
     * @see save
     */
    saveTheme(): void;
    saveThemeActionHandler(): void;
    private _allowModifyPages;
    /**
     * Specifies whether users can add, edit, and delete survey pages.
     *
     * Default value: `true`
     * @see pageEditMode
     */
    get allowModifyPages(): boolean;
    set allowModifyPages(val: boolean);
    showDefaultLanguageInTestSurveyTab: boolean | string;
    /**
     * Specifies whether the Preview tab displays a language selector.
     *
     * Accepted values:
     *
     * - `"auto"` (default)\
     * Display the language selector only if the survey is translated into more than one language.
     *
     * - `true`\
     * Always display the language selector regardless of how many languages the survey uses.
     *
     * - `false`\
     * Never display the language selector.
     *
     * - `"all"`\
     * Always display the language selector with [all supported languages](https://github.com/surveyjs/survey-creator/tree/90de47d2c9da49b06a7f97414026d70f7acf05c6/packages/survey-creator-core/src/localization).
     *
     * [Localization & Globalization](https://surveyjs.io/survey-creator/documentation/survey-localization-translate-surveys-to-different-languages (linkStyle))
     */
    get previewAllowSelectLanguage(): boolean | string;
    set previewAllowSelectLanguage(val: boolean | string);
    /**
     * @deprecated Use the [`previewAllowSelectLanguage`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#previewAllowSelectLanguage) property instead.
     */
    get showDefaultLanguageInPreviewTab(): boolean | string;
    set showDefaultLanguageInPreviewTab(val: boolean | string);
    showInvisibleElementsInTestSurveyTab: boolean;
    /**
     * Specifies whether the Preview tab displays a toggle that allows users to show or hide invisible survey elements.
     *
     * Default value: `true`
     */
    get previewAllowHiddenElements(): boolean;
    set previewAllowHiddenElements(val: boolean);
    /**
     * @deprecated Use the [`previewAllowHiddenElements`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#previewAllowHiddenElements) property instead.
     */
    get showInvisibleElementsInPreviewTab(): boolean;
    set showInvisibleElementsInPreviewTab(val: boolean);
    /**
     * @deprecated Survey Creator no longer supports switching between UI themes in the Preview tab.
     */
    previewAllowSelectTheme: boolean;
    /**
     * @deprecated Survey Creator no longer supports switching between UI themes in the Preview tab.
     */
    get allowChangeThemeInPreview(): boolean;
    set allowChangeThemeInPreview(val: boolean);
    private _tabResponsivenessMode;
    get tabResponsivenessMode(): "menu" | "icons";
    set tabResponsivenessMode(val: "menu" | "icons");
    tabbedMenu: TabbedMenuContainer;
    get tabs(): Array<TabbedMenuItem>;
    set tabs(val: Array<TabbedMenuItem>);
    getLocString(str: string): string;
    /**
     * Specifies whether to show an error message if a survey is not saved in a database.
     *
     * Default value: `true`
     */
    showErrorOnFailedSave: boolean;
    protected onSetReadOnly(newVal: boolean): void;
    /**
     * Specifies the locale of the Survey Creator UI.
     *
     * Default value: `""` (inherited from `editorLocalization.currentLocale`)
     *
     * [Localization & Globalization](https://surveyjs.io/survey-creator/documentation/survey-localization-translate-surveys-to-different-languages (linkStyle))
     */
    get locale(): string;
    set locale(value: string);
    onLocaleChanded: EventBase<SurveyCreatorModel, any>;
    updateLocalizedStrings(): void;
    locStrsChanged(): void;
    private refreshPlugin;
    /**
     * Enables the read-only mode. If you set this property to `true`, users cannot change the initial survey configuration.
     *
     * Default value: `false`
     */
    get readOnly(): boolean;
    set readOnly(newVal: boolean);
    /**
     * Specifies whether to enable support for right-to-left languages.
     *
     * Default value: `false`
     */
    get isRTL(): boolean;
    set isRTL(value: boolean);
    /**
     * An event that is raised before the [active tab](#activeTab) is switched. Use this event to allow or cancel the switch.
     * @see switchTab
     */
    onActiveTabChanging: EventBase<SurveyCreatorModel, ActiveTabChangingEvent>;
    /**
     * An event that is raised after the [active tab](#activeTab) is switched.
     * @see switchTab
     */
    onActiveTabChanged: EventBase<SurveyCreatorModel, ActiveTabChangedEvent>;
    /**
     * Gets or sets the currently displayed tab.
     *
     * Accepted values:
     *
     * - [`"designer"`](#showDesignerTab)
     * - [`"preview"`](#showPreviewTab)
     * - [`"theme"`](#showThemeTab)
     * - [`"json"`](#showJSONEditorTab)
     * - [`"logic"`](#showLogicTab)
     * - [`"translation"`](#showLogicTab)
     * @see switchTab
     */
    get activeTab(): string;
    set activeTab(val: string);
    /**
     * Switches the [active tab](#activeTab). Returns `false` if the tab cannot be switched.
     * @param tabName A tab that you want to make active: `"designer"`, `"preview"`, `"theme"`, `"json"`, `"logic"`, or `"translation"`.
     * @returns `false` if the active tab cannot be switched, `true` otherwise.
     */
    switchTab(tabName: string): boolean;
    /**
     * @deprecated Use the [`switchTab`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#switchTab) method instead.
     */
    makeNewViewActive(tabName: string): boolean;
    private switchViewType;
    private activatePlugin;
    private get currentPlugin();
    /**
     * Provides access to the [Toolbox API](https://surveyjs.io/survey-creator/documentation/api-reference/questiontoolbox).
     *
     * [Toolbox Customization](https://surveyjs.io/survey-creator/documentation/toolbox-customization (linkStyle))
     * @see showToolbox
     * @see toolboxLocation
     */
    toolbox: QuestionToolbox;
    get toolboxCategories(): Array<any>;
    sidebar: SidebarModel;
    constructor(options?: ICreatorOptions, options2?: ICreatorOptions);
    addCreatorEvent<SurveyCreatorModel, T>(): EventBase<SurveyCreatorModel, T>;
    updateToolboxIsCompact(newVal?: boolean): void;
    allowShowToolbox: boolean;
    showToolboxValue: boolean;
    get showToolbox(): boolean;
    /**
     * Specifies whether to show the Toolbox.
     *
     * Default value: `true`
     *
     * [Toolbox Customization](https://surveyjs.io/survey-creator/documentation/toolbox-customization (linkStyle))
     * @see toolbox
     * @see toolboxLocation
     */
    set showToolbox(val: boolean);
    showSidebarValue: boolean;
    onShowSidebarVisibilityChanged: EventBase<SurveyCreatorModel, any>;
    /**
     * Specifies whether to show the sidebar that displays the Property Grid.
     *
     * Default value: `true`
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/customize-property-editors/ (linkStyle))
     * @see sidebarLocation
     */
    get showSidebar(): boolean;
    set showSidebar(val: boolean);
    setShowSidebar(value: boolean, isManualMode?: boolean): void;
    onShowPropertyGridVisiblityChanged: EventBase<SurveyCreatorModel, any>;
    /**
    * @deprecated showPropertyGrid is deprecated, use showSidebar instead.
    */
    get showPropertyGrid(): boolean;
    set showPropertyGrid(val: boolean);
    rightContainerActiveItem(name: string): void;
    leftContainerActiveItem(name: string): void;
    /**
     * An event that is raised before an undo operation.
     * @see undo
     * @see redo
     * @see onBeforeRedo
     */
    onBeforeUndo: EventBase<SurveyCreatorModel, BeforeUndoEvent>;
    /**
     * An event that is raised before an redo operation.
     * @see redo
     * @see undo
     * @see onBeforeUndo
     */
    onBeforeRedo: EventBase<SurveyCreatorModel, BeforeRedoEvent>;
    get undoRedoManager(): UndoRedoManager;
    get undoRedoController(): UndoRedoController;
    startUndoRedoTransaction(name?: string): void;
    stopUndoRedoTransaction(): void;
    /**
     * Returns `true` if an undo or redo operation is in progress.
     * @see undo
     * @see redo
     */
    get isProcessingUndoRedo(): boolean;
    /**
     * Cancels the last change if possible.
     * @see redo
     * @see onBeforeUndo
     */
    undo(): void;
    /**
     * Repeats the last undone action if possible.
     * @see undo
     * @see onBeforeRedo
     */
    redo(): void;
    get selectionHistoryController(): SelectionHistory;
    get currentPage(): PageModel;
    set currentPage(value: PageModel);
    /**
     * An event that is raised before a new page is added to the survey. Handle this event if you do not want to add the page.
     */
    onPageAdding: EventBase<SurveyCreatorModel, PageAddingEvent>;
    canAddPage(pageToAdd?: PageModel): boolean;
    addPage(pageToAdd?: PageModel, changeSelection?: boolean, beforeAdd?: () => boolean): PageModel;
    private addNewPageIntoSurvey;
    protected initTabs(): void;
    private getTabsInfo;
    getAvailableTabs(): Array<any>;
    getTabNames(): Array<string>;
    setTabs(tabNames: Array<string>): void;
    private initPlugins;
    private initFooterToolbar;
    getOptions(): ICreatorOptions;
    protected setOptions(options: ICreatorOptions): void;
    private setPropertyVisibility;
    private patchMetadata;
    isCanModifyProperty(obj: Base, propertyName: string): boolean;
    onIsPropertyReadOnlyCallback(obj: Base, property: JsonObjectProperty, readOnly: boolean, parentObj: Base, parentProperty: JsonObjectProperty, creatorReadOnly?: boolean): boolean;
    /**
     * A [survey](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model) being configured in the Designer tab.
     * @see onSurveyInstanceCreated
     */
    get survey(): SurveyModel;
    /**
     * Adds new items to the [`pages`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#pages), [`triggers`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#triggers), [`calculatedValues`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#calculatedValues), and [`completedHtmlOnCondition`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#completedHtmlOnCondition) arrays in the existing survey JSON schema.
     *
     * Use this method to merge the collection properties of two survey JSON schemas:
     *
     * ```js
     * import { SurveyCreatorModel } from "survey-creator-core";
     * const creatorOptions = { ... };
     * const creator = new SurveyCreatorModel(creatorOptions);
     *
     * const surveyJson1 = { ... };
     * const surveyJson2 = { ... };
     *
     * creator.JSON = surveyJson1;
     * creator.addCollectionItemsJson(surveyJson2);
     * // `creator.JSON` contains the merged survey JSON schema
     * ```
     * @param json A JSON object that contains the `pages`, `triggers`, `calculatedValues`, and/or `completedHtmlOnCondition` array(s).
     * @param insertPageIndex A zero-based index at which to insert new pages.
     */
    addCollectionItemsJson(json: any, insertPageIndex?: number): void;
    private updateAddingSurvey;
    private updateAddingPages;
    private updateAddingExistingElements;
    private updateAddingPanels;
    private updateAddingQuestions;
    private updateAddingCalculatedValules;
    private updateAddingArrays;
    private updateAddingElements;
    private addSurveyPages;
    private existingPages;
    private getSurfaceCss;
    /**
     * Returns true if initial survey was empty. It was not set via JSON property and default new survey is empty as well.
     * @returns true if initial survey doesn't have any elements or properties
     */
    protected initSurveyWithJSON(json: any, clearState: boolean): void;
    private updatePlugin;
    protected initDragDrop(): void;
    /**
     * An event that is raised when users start to drag a survey element within the design surface.
     * @see onDragEnd
     * @see onDragDropAllow
     */
    onDragStart: EventBase<SurveyCreatorModel, DragStartEndEvent>;
    onBeforeDrop: EventBase<any, DragStartEndEvent>;
    /**
     * An event that is raised when users finish dragging a survey element within the design surface.
     * @see onDragStart
     * @see onDragDropAllow
     */
    onDragEnd: EventBase<SurveyCreatorModel, DragStartEndEvent>;
    onAfterDrop: EventBase<any, DragStartEndEvent>;
    /**
     * An event that is raised when users cancel dragging a survey element.
     * @see onDragStart
     * @see onDragEnd
     * @see onDragDropAllow
     */
    onDragClear: EventBase<SurveyCreatorModel, any>;
    private initDragDropSurveyElements;
    get designerStateManager(): import("./components/tabs/designer-state-manager").DesignerStateManager;
    collapseAllPagesOnDragStart(element: SurveyElement): void;
    getElementExpandCollapseState(element: Question | PageModel | PanelModel, reason: ElementGetExpandCollapseStateEventReason, defaultValue: boolean): boolean;
    private restoreState;
    restoreElementsState(): void;
    private initDragDropChoices;
    updateElementsOnLocaleChanged(obj: Base, propertyName: string): void;
    updateConditionsOnNameChanged(obj: Base, propertyName: string, oldValue: any): void;
    private surveyLogicForUpdate;
    private surveyLogicRenaming;
    private getSurveyLogicForUpdate;
    private clearSurveyLogicForUpdate;
    private needClearSurveyLogicForUpdate;
    private updateSurveyLogicValues;
    private updateSurveyLogicItemValue;
    protected createSurveyLogicForUpdate(): SurveyLogic;
    private updateLogicOnQuestionNameChanged;
    private updateLogicOnColumnNameChanged;
    private updateChoicesFromQuestionOnColumnNameChanged;
    isObjQuestion(obj: Base): boolean;
    isObjPage(obj: Base): boolean;
    private isObjThisType;
    private addNewElementReason;
    onDragDropItemStart(): void;
    private doOnQuestionAdded;
    private doOnPanelAdded;
    private doOnPageAdded;
    private getPageByElement;
    private getDefaultSurveyJson;
    protected setSurvey(survey: SurveyModel): void;
    private getSurveyTextFromDesigner;
    private moveElementsToTheEnd;
    protected setTextValue(value: string): void;
    changeText(value: string, clearState?: boolean, trustJSON?: boolean): void;
    private parseJSON;
    /**
     * A survey JSON schema as a string.
     *
     * This property allows you to get or set the JSON schema of a survey being configured. Alternatively, you can use the [`JSON`](#JSON) property.
     */
    get text(): string;
    set text(value: string);
    getSurveyJSON(): any;
    getObjectDisplayName(obj: Base, area: string, reason?: string, displayName?: string): string;
    private animationEnabled;
    createSurvey(json: any, reason: string, model?: any, callback?: (survey: SurveyModel) => void, area?: string): SurveyModel;
    private getSurveyInstanceCreatedArea;
    protected createSurveyCore(json: any, area: string, element: Base): SurveyModel;
    private _stateValue;
    /**
     * Indicates the state of Survey Creator.
     *
     * Accepted values:
     *
     * - `""` - Survey Creator doesn't have unsaved changes.
     * - `"modified"` - Survey Creator has unsaved changes.
     * - `"saving"` - Changes are being saved.
     * - `"saved"` - Changes are successfully saved.
     * @see onModified
     */
    get state(): string;
    protected setState(value: string): void;
    onStateChanged: EventBase<SurveyCreatorModel, any>;
    expandCollapseManager: ExpandCollapseManager;
    notifier: Notifier;
    setModified(options?: any): void;
    notifySurveyPropertyChanged(options: any): void;
    private clearLocalizationStrings;
    private clearNonDefaultLocalesInStrByValue;
    private clearNonDefaultLocalesInStr;
    notifySurveyItemMoved(options: any): void;
    notifySurveyItemConverted(newElement: Base, oldElement: Base): void;
    /**
     * Displays a toast notification with a specified message.
     *
     * If you want to implement custom toast notification from scratch, handle the [`onNotify`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onNotify) event.
     * @param message A message to display.
     * @param type A notification type: `"info"` (default) or `"error"`.
     */
    notify(message: string, type?: "info" | "error"): void;
    protected convertQuestion(obj: Question, className: string, defaultJSON?: any): Question;
    private getDefaultElementJSON;
    private singlePageJSON;
    private storeSjsVersionValue;
    get storeSjsVersion(): boolean;
    set storeSjsVersion(val: boolean);
    /**
     * A survey JSON schema.
     *
     * This property allows you to get or set the JSON schema of a survey being configured. Alternatively, you can use the [`text`](#text) property.
     */
    get JSON(): any;
    set JSON(val: any);
    loadSurvey(surveyId: string): void;
    /**
     * Specifies where to add new questions when users click the "Add Question" button.
     *
     * Accepted values:
     *
     * - `true` (default) - New questions are added to the end of a survey page.
     * - `false` - New questions are added after the currently selected question on the design surface.
     * @see rememberLastQuestionType
     */
    addNewQuestionLast: boolean;
    protected doClickQuestionCore(element: IElement, modifiedType?: string, index?: number, panel?: IPanel): void;
    setNewNames(element: ISurveyElement): void;
    private updateNewElementExpressions;
    protected getAllQuestions(includeNewItems?: boolean): Array<any>;
    protected getAllPanels(includeNewItems?: boolean): Array<any>;
    private getAllElements;
    protected getNewName(type: string, isPanel?: boolean): string;
    protected getNewQuestionName(): string;
    protected getNewPanelName(): string;
    protected setNewNamesCore(element: ISurveyElement): void;
    createNewElement(json: any): IElement;
    copyElement(element: Base): IElement;
    /**
     * Creates a copy of a specified question, inserts the copy next to this question, and (optionally) selects it on the design surface.
     * @param question A question to copy.
     * @param selectCopy *(Optional)* Pass `true` if you want to select the copy on the design surface. Default value: `false`.
     * @returns The instance of a new question.
     */
    copyQuestion(question: Base, selectCopy?: boolean): IElement;
    /**
     * @deprecated Use the [`copyQuestion`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#copyQuestion) method instead.
     */
    fastCopyQuestion(question: Base, selectCopy?: boolean): IElement;
    /**
     * Gets or sets the selected survey element: a question, panel, page, or the survey itself.
     * @see onElementSelecting
     * @see onElementSelected
     */
    get selectedElement(): Base;
    set selectedElement(val: Base);
    /**
     * Refreshes the Designer tab.
     *
     * `refreshDesigner()` is useful if the Designer tab UI depends on an external variable. Call this method each time this variable changes to update the UI.
     */
    refreshDesigner(): void;
    deleteCurrentObject(): void;
    deleteCurrentElement(): void;
    /**
     * Deletes a survey element: a question, panel, or page.
     *
     * If you want to delete the focused element, pass the [`selectedElement`](#selectedElement) property value to this method.
     * @param element A survey element to delete.
     * @see onElementDeleting
     */
    deleteElement(element: Base): void;
    /**
     * Creates a copy of a specified page and inserts the copy next to this page.
     * @param page A [page](https://surveyjs.io/form-library/documentation/api-reference/page-model) to copy.
     * @returns The [instance of a new page](https://surveyjs.io/form-library/documentation/api-reference/page-model).
     * @see onPageAdding
     * @see onPageAdded
     */
    copyPage(page: PageModel): PageModel;
    private isCopyingPage;
    protected deleteObjectCore(obj: any): void;
    private getNextPage;
    protected deleteObject(obj: any): void;
    protected updateConditionsOnRemove(obj: any): void;
    private checkOnElementDeleting;
    isElementSelected(element: Base): boolean;
    selectElement(element: any, propertyName?: string, focus?: boolean | string, startEdit?: boolean): void;
    private ensurePagesVisibility;
    private currentFocusInterval;
    private currentFocusTimeout;
    private renderPageTimeout;
    focusElement(element: any, focus: string | boolean, selEl?: any, propertyName?: string, startEdit?: boolean): void;
    private getHtmlElementForScroll;
    private getSelectedSurveyElement;
    private onSelectingElement;
    /**
     * Opens [Survey Creator theme](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#creatorTheme) settings in Property Grid. Applies only if [`propertyGridNavigationMode`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#propertyGridNavigationMode) is `"buttons"`.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/dynamic-ui-customization/ (linkStyle))
     * @see closeCreatorThemeSettings
     * @see showCreatorThemeSettings
     */
    openCreatorThemeSettings(): void;
    /**
     * Closes [Survey Creator theme](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#creatorTheme) settings in Property Grid. Applies only if [`propertyGridNavigationMode`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#propertyGridNavigationMode) is `"buttons"`.
     * @see openCreatorThemeSettings
     * @see showCreatorThemeSettings
     */
    closeCreatorThemeSettings(): void;
    /**
     * Activates a specified category in Property Grid. Applies only if [`propertyGridNavigationMode`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#propertyGridNavigationMode) is `"buttons"`.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/add-properties-to-property-grid/ (linkStyle))
     * @param name A [category name](https://surveyjs.io/form-library/documentation/customize-question-types/add-custom-properties-to-a-form#category).
     */
    activatePropertyGridCategory(name: string): void;
    protected get designerPropertyGrid(): PropertyGridModel;
    get propertyGrid(): SurveyModel;
    /**
     * Collapses a specified category in Property Grid. Applies only if [`propertyGridNavigationMode`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#propertyGridNavigationMode) is `"accordion"`.
     * @param name A [category name](https://surveyjs.io/form-library/documentation/customize-question-types/add-custom-properties-to-a-form#category).
     * @see expandPropertyGridCategory
     */
    collapsePropertyGridCategory(name: string): void;
    /**
     * Expands a specified category in Property Grid. Applies only if [`propertyGridNavigationMode`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#propertyGridNavigationMode) is `"accordion"`.
     * @param name A [category name](https://surveyjs.io/form-library/documentation/customize-question-types/add-custom-properties-to-a-form#category).
     * @see collapsePropertyGridCategory
     * @see activatePropertyGridCategory
     */
    expandPropertyGridCategory(name: string): void;
    /**
     * Collapses all categories in Property Grid. Applies only if [`propertyGridNavigationMode`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#propertyGridNavigationMode) is `"accordion"`.
     * @see expandAllPropertyGridCategories
     */
    collapseAllPropertyGridCategories(): void;
    /**
     * Expands all categories in Property Grid. Applies only if [`propertyGridNavigationMode`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#propertyGridNavigationMode) is `"accordion"`.
     * @see collapseAllPropertyGridCategories
     */
    expandAllPropertyGridCategories(): void;
    collapseAllPropertyTabs(): void;
    expandAllPropertyTabs(): void;
    expandPropertyTab(name: string): void;
    collapsePropertyTab(name: string): void;
    /**
     * Validates the property values of the [focused element](#selectedElement).
     * @returns `true` if all property values of the focused element are valid or if no element is focused, `false` otherwise.
     * @see onElementSelecting
     * @see onElementSelected
     */
    validateSelectedElement(): boolean;
    /**
     * Deletes all custom translation strings for a specified locale from Survey Creator and from the generated survey JSON schema.
     * @param locale A locale code (for example, "en").
     * @see locale
     */
    deleteLocaleStrings(locale: string): void;
    private propertyGridDefinition;
    getPropertyGridDefinition(): any;
    setPropertyGridDefinition(val: any): void;
    expandCategoryIfNeeded(): void;
    private selectionChanged;
    private getCurrentPageByElement;
    clickToolboxItem(newElement: any, panel?: IPanel, modifiedType?: string): void;
    getJSONForNewElement(json: any): any;
    /**
     * Opens a dialog window for users to select files.
     * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
     * @param callback A callback function that you can use to process selected files. Accepts an array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects.
     * @see onOpenFileChooser
     * @see onUploadFile
     */
    chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
        element: Base;
        item?: any;
        elementType?: string;
        propertyName?: string;
    }): void;
    /**
     * Uploads files to a server.
     * @param files An array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects that represent files to upload.
     * @param question A [question instance](https://surveyjs.io/form-library/documentation/api-reference/question) for which files are uploaded.
     * @param callback A callback function that indicates the upload status&mdash;"success" or "error"&mdash;as the first argument. If a file is uploaded successfully, the second argument contains the file's URL.
     * @see onUploadFile
     */
    uploadFiles(files: File[], question: Question, callback: (status: string, data: any) => any, context?: {
        element: Base;
        item?: any;
        elementType?: string;
        propertyName?: string;
    }): void;
    private _rootElementValue;
    get rootElement(): HTMLElement;
    setRootElement(element: HTMLElement): void;
    unsubscribeRootElement(): void;
    initKeyboardShortcuts(rootNode: HTMLElement): void;
    removeKeyboardShortcuts(rootNode: HTMLElement): void;
    findSuitableShortcuts(event: KeyboardEvent): IKeyboardShortcut[];
    protected onKeyDownHandler: (event: KeyboardEvent) => void;
    private shortcuts;
    registerShortcut(name: string, shortcut: IKeyboardShortcut): void;
    unRegisterShortcut(name: string): void;
    protected deletePanelOrQuestion(obj: Base): void;
    hiddenProperties: any;
    protected onCanShowObjectProperty(object: any, property: JsonObjectProperty, showMode: string, parentObj: any, parentProperty: JsonObjectProperty): boolean;
    protected canDeleteItem(object: any, item: Base, allowDelete: boolean): boolean;
    private getErrorOnPropertyChanging;
    protected generateUniqueName(el: Base, newName: string): string;
    protected generateUniqueNameCore(options: any): void;
    private checkForUniqueName;
    protected isNameUnique(el: Base, newName: string, includeNewItems?: boolean): boolean;
    private isNameUniqueInArray;
    protected doPropertyGridChanged(): void;
    get alwaySaveTextInPropertyEditors(): boolean;
    set alwaySaveTextInPropertyEditors(value: boolean);
    getElementAddornerCssCallback(obj: Base, className: string): string;
    onCanShowPropertyCallback(object: any, property: JsonObjectProperty, showMode: string, parentObj: any, parentProperty: JsonObjectProperty): boolean;
    onPropertyGridSurveyCreatedCallback(object: any, survey: SurveyModel): void;
    onPropertyEditorCreatedCallback(object: any, property: JsonObjectProperty, editor: Question): void;
    onPropertyEditorUpdateTitleActionsCallback(object: any, property: JsonObjectProperty, editor: Question, titleActions: IAction[]): void;
    onPropertyGridShowModalCallback(object: any, property: JsonObjectProperty, editor: Question, popupEditor: any, popupModel: PopupBaseViewModel): void;
    onCanDeleteItemCallback(object: any, item: Base, allowDelete: boolean): boolean;
    onCollectionItemDeletingCallback(obj: Base, property: JsonObjectProperty, collection: Array<Base>, item: Base): boolean;
    onCollectionItemAllowingCallback(obj: Base, property: JsonObjectProperty, collection: Array<Base>, item: Base, itemOptions: ICollectionItemAllowOperations): void;
    onItemValueAddedCallback(obj: Base, propertyName: string, itemValue: ItemValue, itemValues: Array<ItemValue>): void;
    onFastEntryCallback(items: Array<ItemValue>, lines: Array<string>): Array<ItemValue>;
    onMatrixDropdownColumnAddedCallback(matrix: Question, column: MatrixDropdownColumn, columns: Array<MatrixDropdownColumn>): void;
    onSetPropertyEditorOptionsCallback(propertyName: string, obj: Base, editorOptions: any): void;
    onGetErrorTextOnValidationCallback(propertyName: string, obj: Base, value: any): string;
    onValueChangingCallback(options: any): void;
    onGetElementEditorTitleCallback(obj: Base, title: string): string;
    onConditionQuestionsGetListCallback(propertyName: string, obj: Base, editor: any, list: any[], variables: string[]): string;
    isConditionOperatorEnabled(questionName: string, question: Question, operator: string, isEnabled: boolean): boolean;
    onLogicGetTitleCallback(expression: string, expressionText: string, text: string, logicItem: any): string;
    getProcessedTranslationItemText(locale: string, locString: ILocalizableString, newText: string, obj: any): string;
    getTranslationExportedText(obj: Base, name: string, locString: ILocalizableString, locale: string, text: string): string;
    getHasMachineTranslation(): boolean;
    doMachineTranslation(fromLocale: string, toLocale: string, strings: Array<string>, callback: (translated: Array<string>) => void): void;
    translationLocalesOrder: Array<string>;
    /**
     * Starts the translation of survey strings from the default language to one or more specified languages using a machine translation service, such as Google Translate or Microsoft Translator.
     *
     * This method only launches the operation by raising the [`onMachineTranslate`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#onMachineTranslate) event. Handle this event to perform the actual translation.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/ai-translation/ (linkStyle))
     * @param locales An array of locale codes that correspond to target languages, for example, `[ "de", "fr" ]`.
     */
    startMachineTranslationTo(locales: Array<string>): void;
    /**
     * A delay between changing survey settings and saving the survey JSON schema, measured in milliseconds. Applies only when the [`autoSaveEnabled`](#autoSaveEnabled) property is `true`.
     *
     * Default value: 500 (inherited from `settings.autoSave.delay`)
     *
     * If a user changes the settings once again during the delay, only the latest version will be saved.
     */
    autoSaveDelay: number;
    private autoSaveTimerId;
    protected doAutoSave(): void;
    saveNo: number;
    private _doSaveCore;
    /**
     * Calls the [`saveSurveyFunc`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#saveSurveyFunc) function to save the survey JSON schema.
     * @see saveTheme
     * @see save
     */
    saveSurvey(): void;
    doSave(): void;
    saveSurveyActionHandler(): void;
    private _updateSaveActions;
    /**
     * Calls the [`saveSurveyFunc`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#saveSurveyFunc) and [`saveThemeFunc`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#saveThemeFunc) functions to save the survey and theme JSON schemas.
     * @see saveSurvey
     * @see saveTheme
     */
    save(): void;
    protected _syncSaveActions: (sender: any, options: any) => void;
    /**
     * Specifies whether to synchronize [Save buttons](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#showSaveButton) in the Designer and Themes tabs.
     *
     * Default value: `false`
     *
     * When this property is disabled, the Save button in the Designer tab saves only the survey JSON schema, while the Save button in the Themes tab saves only the theme JSON schema. If you enable this property, both buttons will save both JSON schemas.
     * @see saveSurveyFunc
     * @see saveThemeFunc
     * @see save
     */
    syncSaveButtons: boolean;
    /**
     * Specifies whether to display a button that saves the survey or theme (executes the [`saveSurveyFunc`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#saveSurveyFunc) or [`saveThemeFunc`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#saveThemeFunc) function).
     *
     * Default value: `false`
     * @see autoSaveEnabled
     * @see syncSaveButtons
     */
    showSaveButton: boolean;
    /**
     * A function that is called each time users click the [Save button](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#showSaveButton) or [auto-save](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#autoSaveEnabled) is triggered to save a survey JSON schema.
     *
     * For more information, refer to the Save and Load Survey Model Schemas help topic for your framework: [Angular](https://surveyjs.io/survey-creator/documentation/get-started-angular#save-and-load-survey-model-schemas) | [Vue](https://surveyjs.io/survey-creator/documentation/get-started-vue#save-and-load-survey-model-schemas) | [React](https://surveyjs.io/survey-creator/documentation/get-started-react#save-and-load-survey-model-schemas) | [HTML/CSS/JavaScript](https://surveyjs.io/survey-creator/documentation/get-started-html-css-javascript#save-and-load-survey-model-schemas).
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/set-how-survey-configuration-changes-are-saved/ (linkStyle))
     * @see saveThemeFunc
     */
    get saveSurveyFunc(): any;
    set saveSurveyFunc(value: any);
    convertCurrentQuestion(newType: string, defaultJSON?: any): void;
    getAddNewQuestionText(currentAddQuestionType?: string): any;
    get addNewQuestionText(): any;
    isAllowedNestingLevel(element: SurveyElement, childNesting?: number): boolean;
    isAllowedNestedPanels(element: SurveyElement, childNesting?: number): boolean;
    isAllowedToAdd: (elementType: string, container: SurveyElement) => boolean;
    getAvailableToolboxItems(element?: SurveyElement, isAddNew?: boolean): Array<QuestionToolboxItem>;
    _getActualElementToAddNewElements(element: SurveyElement<any>): Question | SurveyElement<any>;
    getQuestionTypeSelectorModel(beforeAdd: (type: string) => void, element?: SurveyElement): Action;
    getUpdatedPageAdornerFooterActions(pageAdorner: PageAdorner, actions: Array<IAction>): IAction[];
    addNewQuestionInPage(beforeAdd: (string: any) => void, panel?: IPanel, type?: string, initJson?: any): void;
    createIActionBarItemByClass(item: QuestionToolboxItem, needSeparator: boolean, onSelectQuestionType?: (questionType: string, json?: any) => void): Action;
    onElementMenuItemsChanged(element: any, items: Action[]): void;
    getElementAllowOperations(element: SurveyElement): any;
    getChoicesItemBaseTitle(): any;
    getNextItemValue(question: QuestionSelectBase): string | number;
    createNewItemValue(question: QuestionSelectBase, callEvent?: boolean, callback?: (res: ItemValue) => void): ItemValue;
    protected onPropertyValueChanged(name: string, oldValue: any, newValue: any): void;
    initResponsivityManager(container: HTMLDivElement): void;
    resetResponsivityManager(): void;
    showHeaderInEmptySurvey: any;
    allowShowPageNavigator: any;
    allowShowSurfaceToolbar: any;
    private showPageNavigatorValue;
    get showPageNavigator(): boolean;
    set showPageNavigator(val: boolean);
    showTabsDefault: boolean;
    showToolbarDefault: boolean;
    showTabs: any;
    showToolbar: any;
    allowCollapseSidebar: any;
    showAddQuestionButton: any;
    isMobileView: boolean;
    isTouch: any;
    currentOS: string;
    /**
     * Specifies the Toolbox location.
     *
     * Accepted values:
     *
     * - `"left"` (default) - Displays the Toolbox on the left side of the design surface.
     * - `"right"` - Displays the Toolbox on the right side of the design surface.
     * - `"sidebar"` - Displays the Toolbox as an overlay on top of the Property Grid. Use the [`sidebarLocation`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#sidebarLocation) property to specify the Property Grid position.
     *
     * [Toolbox Customization](https://surveyjs.io/survey-creator/documentation/toolbox-customization (linkStyle))
     * @see showToolbox
     * @see toolbox
     */
    toolboxLocation: toolboxLocationType;
    /**
     * Specifies the position of the sidebar that displays the Property Grid. Applies only when [`showSidebar`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#showSidebar) is `true`.
     *
     * Accepted values:
     *
     * - `"right"` (default) - Displays the sidebar on the right side of the design surface.
     * - `"left"` - Displays the sidebar on the left side of the design surface.
     * @see toolboxLocation
     */
    sidebarLocation: "left" | "right";
    /**
     * Specifies the visibility of the buttons that expand and collapse survey elements on the design surface.
     *
     * Accepted values:
     *
     * - `"onhover"` (default) - Displays an expand/collapse button when a survey element is hovered over or selected.
     * - `"always"` - Displays the expand/collapse buttons permanently.
     * - `"never"` - Hides the expand/collapse buttons.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/expand-and-collapse-survey-elements/ (linkStyle))
     * @see onElementGetExpandCollapseState
     * @see collapseOnDrag
     */
    expandCollapseButtonVisibility?: "never" | "onhover" | "always";
    /**
     * Collapses all survey elements in the design surface.
     * @see expandAll
     * @see collapseElement
     */
    collapseAll(): void;
    /**
     * Expands all survey elements on the design surface.
     * @see collapseAll
     * @see expandElement
     */
    expandAll(): void;
    /**
     * Collapses an individual survey element on the design surface.
     * @param element A survey element to collapse.
     * @see expandElement
     * @see collapseAll
     */
    collapseElement(element: SurveyElement): void;
    /**
     * Expands an individual survey element on the design surface.
     * @param element A survey element to expand.
     * @see collapseElement
     * @see expandAll
     */
    expandElement(element: SurveyElement): void;
    collapsePages: boolean;
    collapsePanels: boolean;
    collapseQuestions: boolean;
    expandOnDragTimeOut: number;
    selectFromStringEditor: boolean;
    isCreatorDisposed: boolean;
    dispose(): void;
    enableLinkFileEditor: boolean;
    getRootCss(): string;
    themeVariables: {
        [index: string]: string;
    };
    /**
     * A theme for the Survey Creator UI.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/dynamic-ui-customization/ (linkStyle))
     * @see applyCreatorTheme
     * @see showCreatorThemeSettings
     */
    creatorTheme: ICreatorTheme;
    preferredColorPalette: string;
    /**
     * Applies a specified UI theme to Survey Creator.
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/dynamic-ui-customization/ (linkStyle))
     * @param theme An `ICreatorTheme` object with theme settings.
     * @see creatorTheme
     * @see showCreatorThemeSettings
     */
    applyCreatorTheme(theme: ICreatorTheme): void;
    syncTheme(theme: ICreatorTheme, isLight?: boolean): void;
    private _allowDragPages;
    /**
     * Specifies whether users can drag and drop pages on the design surface.
     *
     * Default value: `true` if [`pageEditMode`](https://surveyjs.io/survey-creator/documentation/api-reference/survey-creator#pageEditMode) is `"standard"`; `false` otherwise.
     * @see collapseOnDrag
     */
    get allowDragPages(): boolean;
    set allowDragPages(newValue: boolean);
    /**
     * Specifies whether to collapse pages on the design surface when users start dragging a survey element.
     *
     * Default value: `false`
     */
    collapseOnDrag: boolean;
    /**
     * Specifies whether to clear translations to other languages when a source language translation is changed.
     *
     * Default value: `false`
     *
     * [View Demo](https://surveyjs.io/survey-creator/examples/ai-translation/ (linkStyle))
     * @see showTranslationTab
     */
    clearTranslationsOnSourceTextChange: boolean;
    /**
     * An event that is raised to determine whether in-place editing is allowed for an element on the design surface. Use this event to enable or disable in-place editing for specific elements.
     * @see inplaceEditChoiceValues
     */
    onAllowInplaceEdit: EventBase<SurveyCreatorModel, AllowInplaceEditEvent>;
    isStringInplacelyEditable(element: Base, stringName: string, item?: ItemValue): boolean;
}
export declare class CreatorBase extends SurveyCreatorModel {
}
export declare function initializeDesignTimeSurveyModel(model: any, creator: SurveyCreatorModel): void;
export declare const editableStringRendererName = "svc-string-editor";
export declare function getElementWrapperComponentName(element: any, reason: string, isPopupEditorContent: boolean): string;
export declare function getRowWrapperComponentName(row: QuestionRowModel): string;
export declare function getQuestionContentWrapperComponentName(element: any): string;
export declare function getRowWrapperComponentData(row: QuestionRowModel, creator: SurveyCreatorModel): {
    creator: SurveyCreatorModel;
    row: QuestionRowModel;
};
export declare function getElementWrapperComponentData(element: any, reason: string, creator: SurveyCreatorModel): any;
export declare function getItemValueWrapperComponentName(item: ItemValue, question: QuestionSelectBase): string;
export declare function getItemValueWrapperComponentData(item: ItemValue, question: QuestionSelectBase, creator: SurveyCreatorModel): any;
export declare function isStringEditable(element: any, name: string): boolean;
export declare function isTextInput(target: any): boolean;
export declare function registerAdorner(name: any, adorner: any): void;
export declare function removeAdorners(names?: string[]): void;
