/*!
Copyright © 2024 Open Text Corporation, All Rights Reserved.

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
import { OcpdBaseElementDesigner } from '../base-element-designer/ocpd-base-element-designer';
import { Config } from '../../models/control-config';
import { OcpdBaseSchemaService } from '../../singletons/ocpd-base-schema-service';
import { OcpdFormClientAPIService } from '../../singletons/ocpd-form-client-api-service';
import { OcpdItemManagerHelper } from '../../singletons/ocpd-item-manager-helper';
import { OcpdStringLocalizationHelper } from '../../singletons/ocpd-string-localization';
import { LocaleDataDesignerControlToolBox, PropertiesPane, General } from '../../models/localization-types';
import { OcpdLocalizationService } from '../../singletons/ocpd-localization-service';
import { Designer } from '../designer/designer';
import { OcpdConfigurationManager } from '../../singletons/ocpd-configuration-manager';
import { AdditionalForm } from '../../models/additional-form-definition';
import { ItemManager } from '@opentext/forms-data-manager';
import { OcpdFormSchemaManager } from '../../singletons/ocpd-form-schema-manager';
import { OcpdAddOptions } from '../../dialogs/ocpd-add-options';
import { OcpdAddConstraints } from '../../dialogs/ocpd-add-constraints';
export declare class DesignerPropertiesWindow extends OcpdBaseElementDesigner {
    _ocpdPropertiesPaneConfigService: any;
    _ocpdBaseSchemaService: OcpdBaseSchemaService;
    _ocpdItemManagerHelper: OcpdItemManagerHelper;
    _ocpdStringLocalizationHelper: OcpdStringLocalizationHelper;
    _ocpdFormClientAPIService: OcpdFormClientAPIService;
    _ocpdFormSchemaManager: OcpdFormSchemaManager;
    _ocpdLocalizationService: OcpdLocalizationService;
    _ocpdConfigurationManager: OcpdConfigurationManager;
    _controlPropertiesContainer: HTMLDivElement;
    _fieldPropertiesContainer: HTMLDivElement;
    _formPropertiesContainer: HTMLDivElement;
    _controlPropertiesWindow: HTMLDivElement;
    _fieldPropertiesWindow: HTMLDivElement;
    _controlPropertiesWindowActionsContainer: HTMLDivElement;
    _localeDataControls: LocaleDataDesignerControlToolBox;
    _localeData: PropertiesPane;
    _localeDataGeneral: General;
    _panelTitle: HTMLDivElement;
    _triggerScrollUpdateEventHandler: any;
    _currentId: string;
    _currentProps: any[];
    _currentFieldProps: string[];
    _designer: Designer;
    additionalFormDefinition: AdditionalForm;
    _ocpdAddOptions: OcpdAddOptions;
    _ocpdAddConstraints: OcpdAddConstraints;
    promiseQueue: {};
    _popupContent: any;
    _additionalFormDefinitionItemManager: ItemManager;
    static get tagName(): string;
    postMessageComplete(data: any, origin: any): Promise<void>;
    postMessageToClient(data: any, origin: any): Promise<any>;
    userInterfaceLocaleChanged(locale: string): Promise<void>;
    localizeDisplayName(): Promise<void>;
    themeChanged(themeName: any): void;
    constructor();
    connectedCallback(): Promise<void>;
    getPropertiesUIConfig(config: Config): {
        type: string;
        id: string;
        controls: {
            allowSearch: boolean;
            isCollapsible: boolean;
            type: string;
            propertyPath: string;
            display: string;
            id: string;
            border: string;
            label: {
                show: boolean;
                text: string;
            };
            controls: any[];
            sort: string;
            customData: {};
            collapsedByDefault: boolean;
        }[];
    };
    modifyRowStartToAlignHiddenControl(hiddenControlName: any, UIConfig: any): void;
    isRequiredInModelSchema(): boolean;
    addPropertyPathToExclusionList(props: any, elementProps: any, propertyPathsToExclude: any, id: any, isFieldProps: boolean): void;
    isRepeatingFieldProperty(propertyPath: string): boolean;
    addPropertyToCurrentFieldProps(props: any): void;
    getListOfCommonlySupportedProperties(isFieldProps: any, config: Config): Promise<string[]>;
    findPropertyPathsToExclude(props: any, isFieldProps: boolean): Promise<string[]>;
    removeControlsByPropertyPath(propertyPathsToExclude: string[], UIConfig: any, props: any): void;
    setCurrentId(): void;
    enableDisableVariableHeightTableToggle(config: Config): Promise<void>;
    updatePropertiesWindow(): Promise<void>;
    addListOptionsToURLSupportedControls(config: Config): void;
    updateSchemaPropertiesWindow(config: any): Promise<void>;
    getControlPropertiesTemplate(canShowAsSection: boolean): string;
    getFieldPropertiesTemplate(canShowAsSection: boolean): string;
    getFormPropertiesTemplate(canShowAsSection: boolean): string;
    showProperties(propertiesContainer: HTMLDivElement, fieldPropertiesWindow: HTMLDivElement): void;
    hideProperties(propertiesContainer: HTMLDivElement): void;
    setMaxHeightForContainer(propertiesContainer: HTMLDivElement, maxHeight: string): void;
    cleanUpEmptySpace(): void;
    getUIConfigForFieldProperties(config: Config): Promise<{
        type: string;
        id: string;
        controls: {
            allowSearch: boolean;
            isCollapsible: boolean;
            type: string;
            propertyPath: string;
            display: string;
            id: string;
            border: string;
            label: {
                show: boolean;
                text: string;
            };
            controls: any[];
            sort: string;
            customData: {};
            collapsedByDefault: boolean;
        }[];
    }>;
    renderFieldProperties(config: Config): Promise<void>;
    formLocaleChanged(locale: any, oldLocale: any): Promise<void>;
    getOTOptionsAndFormatForGridConsumption(defaultLocale: any, currentLocale: any, propertyPath: any): any;
    findLocalisedOption(options: any, unlocalizedOption: any): any;
    getEnumAndFormatForGridConsumption(propertyModel: any): any;
    loadAdditionalForm(additionalFormDefinition: AdditionalForm, config: Config): Promise<void>;
    getCollapsibleConfigForProperties(runtimeConfig: any, headerTitle: string, isCollapsible: boolean, isCollapsibleByDefault: boolean): {
        type: string;
        id: string;
        controls: {
            allowSearch: boolean;
            isCollapsible: boolean;
            type: string;
            propertyPath: string;
            display: string;
            id: string;
            border: string;
            label: {
                show: boolean;
                text: string;
            };
            controls: any[];
            sort: string;
            customData: {};
            collapsedByDefault: boolean;
        }[];
    };
    assignDataToWorkingSchemaAndModel(config: Config, schemaItemId: any): Promise<any>;
    getUIDefinitionForSchemaProperties(config: Config, schemaItemId: any): Promise<{
        type: string;
        numberOfColumns: number;
        grid: {
            gap: number;
            gridTemplateRows: string;
        };
        id: string;
        controls: any[];
    }>;
    isAnyBoundFieldSelected(): boolean;
    getListOfProperties(config: any): string[];
    valuesAreEqual(value1: any, value2: any): boolean;
    clearPropertiesWindow(): void;
    triggerScrollUpdate(): void;
    addTypeOptions(config: Config): void;
    addListOptionsForIframeOrLink(propertyName: string, options: any[], schema: any): void;
    getTypeOptions(config: Config): any[];
    runUITransitionCode(config: Config): Promise<void>;
    applyRulesToURLSupportedControls(config: Config, propertyPath?: string, newValue?: boolean): Promise<void>;
    hideRuntimeControl(propertyPath: string, itemId: string): Promise<void>;
    showRuntimeControl(propertyPath: string, itemId: string): Promise<void>;
    findAllCommonSelectedNonSchemaProperties(elementId: any, propertyPath: any): any;
    isAnyPropertySelected(): boolean;
    isNotAVirtualControl(id: any, element: any): boolean;
    applyChangeForAllSelectedElements(propertyPath: any, oldValue: any, newValue: any, elementId: any, createUndo: any, transactionId: any): Promise<void>;
    commitChanges(id: any, propertyPath: any, newValue: any, createUndo: any, element: any, transactionId: any): Promise<void>;
    disconnectedCallback(): void;
    addEventListeners(): void;
    removeEventListeners(): void;
    focusOnFirstElement(elem?: any): void;
    get panelTitle(): HTMLDivElement;
    get designer(): Designer;
    get controlPropertiesWindow(): HTMLDivElement;
    get fieldPropertiesWindow(): HTMLDivElement;
    get propertiesWindowActionsContainer(): HTMLDivElement;
    get controlPropertiesContainer(): HTMLDivElement;
    get fieldPropertiesContainer(): HTMLDivElement;
    get formPropertiesContainer(): HTMLDivElement;
    systemConfigurationChanged(systemConfig: any, changes: any): void;
    getCss(themeName: any): string;
}
