import { SurveyElement, SurveyTemplateRendererTemplateData, Action, IAction, ListModel } from "survey-core";
import { SurveyCreatorModel } from "../creator-base";
import { IPortableEvent } from "../utils/events";
import { SurveyElementActionContainer } from "./action-container-view-model";
import { SurveyElementAdornerBase } from "./survey-element-adorner-base";
import "./question.scss";
import { QuestionToolboxItem } from "../toolbox";
export interface QuestionBannerParams {
    text: string;
    actionText: string;
    onClick: () => void;
}
export declare class QuestionAdornerViewModel extends SurveyElementAdornerBase {
    templateData: SurveyTemplateRendererTemplateData;
    _currentAddQuestionType: string;
    get currentAddQuestionType(): string;
    set currentAddQuestionType(val: string);
    placeholderComponent: string;
    placeholderComponentData: any;
    private dragOrClickHelper;
    constructor(creator: SurveyCreatorModel, surveyElement: SurveyElement, templateData: SurveyTemplateRendererTemplateData);
    protected onElementTypeRestrictionChanged(elType: string): void;
    protected canSelectElement(): boolean;
    select(model: QuestionAdornerViewModel, event: IPortableEvent): boolean;
    rootCss(): string;
    css(): string;
    private get isTitleLeft();
    protected getAnimatedElement(): Element;
    protected getInnerAnimatedElements(): Array<HTMLElement>;
    protected expandWithDragIn(): void;
    get isBannerShowing(): boolean;
    private get isUsingCarryForward();
    private get isUsingRestfull();
    private get isMessagePanelVisible();
    get cssCollapsedHiddenHeader(): string;
    get cssCollapsedHiddenTitle(): string;
    createBannerParams(): QuestionBannerParams;
    private createCarryForwardParams;
    private createUsingRestfulParams;
    private createCustomMessagePanel;
    protected detachElement(surveyElement: SurveyElement): void;
    protected attachElement(surveyElement: SurveyElement): void;
    get isDraggable(): boolean;
    get hoverDelay(): number;
    hover(event: MouseEvent, element: HTMLElement | any): void;
    protected createActionContainer(): SurveyElementActionContainer;
    protected updateActionsPropertiesCore(): void;
    protected updateActionsVisibility(isTop: boolean): void;
    private updateActionsLocations;
    protected updateElementAllowOptions(options: any, operationsAllow: boolean): void;
    private updateActionVisibilityByProp;
    get isEmptyElement(): boolean;
    set isEmptyElement(val: boolean);
    protected getIsEmptyElement(): boolean;
    protected updateIsEmptyElement(): void;
    get isEmptyTemplate(): boolean;
    get showHiddenTitle(): boolean;
    get placeholderText(): string;
    private get dragDropHelper();
    onPointerDown(pointerDownEvent: PointerEvent): void;
    startDragSurveyElement: (event: PointerEvent) => boolean;
    private getConvertToTypes;
    private buildDefaultJsonMap;
    private convertQuestion;
    getConvertToTypesActions(): Array<IAction>;
    private get currentType();
    private createConvertToAction;
    static checkForNeedDefaultSubitems(items: QuestionToolboxItem[]): void;
    private static jsonsAreCompatible;
    private jsonIsCorresponded;
    private toolboxItemIsCorresponded;
    private cleanDefaultsFromJson;
    protected allowExpandCollapseByDblClick(element: any): any;
    protected updateQuestionTypeOrSubtypeListModel(listModel: ListModel, subtypeOnly: boolean): boolean;
    private createConvertInputType;
    private getSelectedItem;
    private createDropdownModel;
    private updateRequiredAction;
    private createRequiredAction;
    protected getUpdatedPropertyValue(propName: string, newValue: any): any;
    protected buildActions(items: Array<Action>): void;
    protected duplicate(): void;
    addNewQuestion: () => void;
    questionTypeSelectorModel: Action;
    get addNewQuestionText(): string;
}
