import { JsonObjectProperty, SurveyModel, QuestionMatrixDynamicModel, MatrixDynamicRowModel } from "survey-core";
import { ICreatorPresetEditorSetup } from "./presets-editable-base";
import { SurveyCreatorModel, ISurveyPropertyGridDefinition, SurveyQuestionProperties, PropertyGridModel } from "survey-creator-core";
import { CreatorPresetEditableCaregorizedListConfigurator } from "./presets-editable-categorized";
export declare class SurveyQuestionPresetProperties extends SurveyQuestionProperties {
    constructor(obj: any, className: string, propertyGridDefinition: ISurveyPropertyGridDefinition);
    protected getIsPropertyVisible(prop: JsonObjectProperty): boolean;
}
export declare class SurveyQuestionPresetPropertiesDetail {
    private className;
    private currentJson;
    private propertiesHash;
    private properties;
    private propertyGridValue;
    private propertyGridDefaultValue;
    private obj;
    private allClasses;
    private baseClasses;
    constructor(className: string, currentJson: ISurveyPropertyGridDefinition);
    getObj(): any;
    private collectAllClasses;
    private createPropertyGrid;
    private createObj;
    getInitialJson(useDefaults: boolean): any;
    get propertyGridDefault(): PropertyGridModel;
    getPropertyClassName(propName: string): string;
    updateCurrentJson(val: Array<any>): void;
    getAllClasses(): Array<string>;
    getClassesBySharedProperty(propName: string): Array<string>;
    getSelectedClassesForProperty(propName: string): string[];
    private removeBaseClassesFromCurrentJson;
    private createFlatClassProperties;
    private hasBaseClassInCurrentJson;
    private removeBaseClassesFromCurrentJsonCore;
    private updateCurrentJsonCore;
    private updateJsonClasses;
    updatePropertyVisibility(propInfo: any, propCategory: string): void;
    private updatePropertyVisibilityCore;
    private getPropClassName;
    private getClassName;
}
export declare class CreatorPresetEditablePropertyGrid extends CreatorPresetEditableCaregorizedListConfigurator {
    private currentJson;
    private localeStrings;
    private currentProperties?;
    private currentClassName;
    private isModified;
    protected get nameInnerMatrix(): string;
    protected createItemsMatrixJSON(props: any): any;
    createMainPageCore(): any;
    private propertyGrid;
    protected propertyGridSetObj(obj: any): void;
    protected hasIcon(name: string): boolean;
    protected restoreValuesFromDefault(model: SurveyModel): void;
    getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any;
    protected setupPageQuestions(model: SurveyModel, creator: SurveyCreatorModel): void;
    protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void;
    private setJSONForTitlesAndDescriptions;
    protected onLocaleChangedCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void;
    protected setJsonLocalizationStringsCore(model: SurveyModel, locStrs: any): void;
    protected updateJsonLocalizationStringsCore(locStrs: any): void;
    protected setupOnCurrentPageCore(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void;
    private firstTimeLoading;
    get isSettingUp(): boolean;
    protected updateOnValueChangedCore(model: SurveyModel, name: string): void;
    private updateMatrices;
    private getCurrentlyHiddenItems;
    private setupDefaults;
    protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void;
    private getSelector;
    private get nameSelector();
    private getSelectorChoices;
    private getSelectorItemTitle;
    private getColumnItemTitle;
    private updateCurrentJson;
    private getPropertiesArray;
    private changePropTitleAndDescription;
    private ensureLocalizationPath;
    protected onDetailPanelInPopupApply(data: any, matrix: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel): boolean;
    protected editItem(model: SurveyModel, creator: SurveyCreatorModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, options?: {
        description: string;
        isNew: boolean;
    }): void;
}
