import { SurveyModel, Base, Question, ItemValue, MatrixDropdownColumn } from "survey-core";
import { SurveyLogicType } from "./logic-types";
export declare class SurveyLogicAction {
    private surveyValue;
    private logicTypeValue;
    private elementValue;
    constructor(logicType: SurveyLogicType, element: Base, survey: SurveyModel);
    get logicType(): SurveyLogicType;
    get element(): Base;
    get parentElement(): Base;
    get survey(): SurveyModel;
    apply(expression: string, isRenaming?: boolean): void;
    private removeElement;
    renameQuestion(oldName: string, newName: string): void;
    clone(): SurveyLogicAction;
    equals(action: SurveyLogicAction): boolean;
    get name(): string;
    get logicTypeName(): string;
    get logicTypeDescription(): string;
    get text(): string;
    get deleteActionText(): string;
    getLocString(name: string): string;
    isSuitableByQuestionName(questionName: string): boolean;
    isSuitableByLogicType(logicTypeName: string): boolean;
    addQuestionNames(names: string[]): void;
    private get questionNames();
    get elementName(): string;
    private get elementOwnerName();
    private getOwnerElement;
    private get questionNamesValues();
}
export interface ISurveyLogicItemOwner {
    survey: SurveyModel;
    readOnly: boolean;
    editItem(item: SurveyLogicItem): any;
    removeItem(item: SurveyLogicItem): any;
    getExpressionAsDisplayText(expression: string): string;
    getVisibleLogicTypes(): Array<SurveyLogicType>;
}
export declare class SurveyLogicItem {
    private owner;
    expression: string;
    private static counter;
    private idValue;
    private removedActions;
    private actionsValue;
    isNew: boolean;
    isModified: boolean;
    constructor(owner: ISurveyLogicItemOwner, expression?: string);
    get actions(): Array<SurveyLogicAction>;
    get id(): number;
    get name(): string;
    get survey(): SurveyModel;
    getVisibleLogicTypes(): Array<SurveyLogicType>;
    get expressionText(): string;
    get actionsText(): string;
    getDisplayText(): string;
    private escapeForRegExp;
    edit(): void;
    remove(): void;
    get isReadOnly(): boolean;
    addNewAction(action: SurveyLogicAction): void;
    removeAction(action: SurveyLogicAction): void;
    replaceAction(newAction: SurveyLogicAction, oldAction: SurveyLogicAction): void;
    clone(): SurveyLogicItem;
    equals(item: SurveyLogicItem): boolean;
    private replaceActionCore;
    apply(expression: string): void;
    renameQuestion(oldName: string, newName: string): void;
    renameColumn(question: Question, column: MatrixDropdownColumn, oldName: string): void;
    renameItemValue(question: Question, item: ItemValue, oldValue: any): void;
    private renameDropdownColumnItemValue;
    renameRowValue(question: Question, item: ItemValue, oldValue: any): void;
    private canUpdateExpressionByQuestion;
    private isQuestionInExpression;
    private isStrContainsInExpression;
    private getItemValueQuestionName;
    removeQuestion(name: string): void;
    getQuestionNames(): string[];
    getActionTypes(): string[];
    getContext(): Base;
    private getQuestionNamesFromExpression;
    private getQuestionNamesFromActions;
    private getExpressionAsDisplayText;
    get editText(): string;
    get deleteText(): string;
    get ifText(): string;
    isSuitable(filteredName: string, logicTypeName?: string): boolean;
    private isSuitableInExpression;
    private isSuitableByNameInActions;
    private isSuitableByLogicTypeInActions;
    private renameQuestionInExpression;
    private renameQuestionInExpressionCore;
    private removeQuestionInExpression;
    private applyExpression;
    private removeActions;
    private removeSameActions;
}
