import { ISurveyPropertyGridDefinition } from "./definition";
import { JsonObjectProperty } from "survey-core";
import { ISurveyCreatorOptions } from "../creator-settings";
export declare class SurveyQuestionEditorPropertyDefinition {
    className: string;
    property: JsonObjectProperty;
    title: string;
    category: string;
    onSameLine: boolean;
    index: number;
    definedIndex: number;
    get name(): string;
}
export declare class SurveyQuestionEditorTabDefinition {
    name: string;
    iconName: string;
    title: string;
    visible: boolean;
    index: number;
    properties: Array<SurveyQuestionEditorPropertyDefinition>;
    parentName: string;
    parent: SurveyQuestionEditorTabDefinition;
    tabs: Array<SurveyQuestionEditorTabDefinition>;
}
export declare class SurveyQuestionProperties {
    obj: any;
    options: ISurveyCreatorOptions;
    private parentObj;
    private parentProperty;
    private propertyGridDefinition;
    private showModeValue;
    private properties;
    private propertiesHash;
    private tabs;
    private unusedProperties;
    private customGeneratedProperties;
    constructor(obj: any, options?: ISurveyCreatorOptions, className?: string, showMode?: string, parentObj?: any, parentProperty?: JsonObjectProperty, propertyGridDefinition?: ISurveyPropertyGridDefinition);
    get showMode(): string;
    get isEmpty(): boolean;
    getAllVisiblePropertiesNames(includeUnused: boolean): Array<string>;
    getProperty(propertyName: string): JsonObjectProperty;
    getTabByName(tabName: string): SurveyQuestionEditorTabDefinition;
    getTabs(): Array<SurveyQuestionEditorTabDefinition>;
    getProperties(tab: SurveyQuestionEditorTabDefinition): Array<JsonObjectProperty>;
    getInvisibleCustomGeneratedProperties(visibleProperties: Array<string>): Array<string>;
    protected getIsPropertyVisible(prop: JsonObjectProperty): boolean;
    protected getDynamicClassName(): string;
    private fillPropertiesHash;
    private isJSONPropertyVisible;
    private buildTabs;
    private populateTabsFromDefinitions;
    private finalizeTabLayout;
    private applyTabDefinition;
    private getTabOrCreate;
    private sortTabsByIndex;
    private setParentTabs;
    private addPropertyIntoTab;
    private movePropertiesToAdjacentPositions;
    private findTabByPropertyName;
    private findPropertyInTab;
    private getNextToNameProperty;
    private isPropertyOnSameLine;
    private get isColumnObj();
    private get generateOtherTab();
    private getClassDefinition;
    private getDefinitionClassCopy;
    private getAllDefinitionsByClass;
    private getDefinitionsForPrefixedClass;
    private getDefinitionsForRegularClass;
    private markUsedProperties;
    private collectDefinitionsFromClassHierarchy;
    private collectSingleClassDefinition;
    private getJsonPropertyCategory;
    private getUnusedProperties;
    private getInvisibleGeneratedProperties;
    private addNonTabProperties;
    private getClassDepth;
    private sortProperties;
    private insertPropertiesWithVisibleIndex;
}
