import { EventEmitter, OnInit } from '@angular/core';
import { DialogService } from '../../controls/dialog/dialog.service';
import { SchemaFieldLoaderComponentBase } from '../schema/schema-field-host.component';
import { DataSchema, FormData } from '../schema/schema-models';
import { SchemaFormContentComponent } from './schema-form-content.component';
import { SchemaFormEditorComponent } from './schema-form-editor.component';
import * as i0 from "@angular/core";
/**
 * Schema Form Component
 * It takes the schema and data and other necessary inputs then dynamically renders the form UI.
 */
export declare class SchemaFormComponent implements OnInit {
    private dialogService;
    strings: {
        NoSchemaMessage: {
            Row1: string;
            Row2: string;
            Row3: string;
        };
        EditButton: {
            Text: string;
        };
        Editor: {
            Title: string;
            SwitchToCodeViewMessage: string;
            PreviewForm: {
                Title: string;
                EmptySchemaMessage: string;
                ValidationResult: {
                    Passed: string;
                    Failed: string;
                    Title: string;
                };
            };
            Welcome: {
                Title: string;
                Row1: string;
                Row2: string;
                Row3: string;
                Row4: string;
                Row5: string;
                Row6: string;
                Row7: string;
                Row8: string;
                Row9: string;
                Row10: string;
                Row11: string;
            };
            SchemaView: {
                Title: string;
                Visual: string;
                Code: string;
            };
            ApplySchemaButton: {
                Text: string;
            };
            GoToCodeViewButton: {
                Text: string;
            };
            CloseButton: {
                Text: string;
            };
            SchemaTree: {
                Welcome: {
                    Row1: string;
                    Row2: string;
                    Row3: string;
                    Row4: string;
                    Row5: string;
                };
            };
            PropertyForm: {
                Header: string;
                Footer: string;
                DataType: string;
                Advance: string;
                Required: string;
                DefaultValue: string;
                Description: string;
                HideCondition: string;
                ConditionForDisabled: string;
                CustomValidation: string;
                ReadonlyCondition: string;
                MoreOptions: string;
                EmptyByDefault: string;
                NoOptionSchema: string;
                Welcome: {
                    Row1: string;
                    Row2: string;
                    Row3: string;
                    Row4: string;
                    Row5: string;
                    Row6: string;
                    Row7: string;
                };
                Type: {
                    Description: string;
                };
                Format: {
                    Description: string;
                };
                Name: {
                    Description: string;
                };
                Label: {
                    Description: string;
                };
                MultipleLine: {
                    Title: string;
                };
                ObjectType: {
                    ColumnCount: string;
                    Collapsible: string;
                    HideHeader: string;
                    Yes: string;
                    State: string;
                    Collapsed: string;
                    Expanded: string;
                };
                Options: {
                    StaticOptions: string;
                    DynamicOptions: string;
                    Label: string;
                    Value: string;
                };
                CodeEditor: {
                    Language: {
                        label: string;
                        description: string;
                    };
                    Options: {
                        label: string;
                        description: string;
                    };
                };
            };
            SchemaText: {
                Message1: string;
                Message2: string;
                LintMessage: string;
                CopyToClipboardButton: {
                    Text: string;
                };
            };
            ViewModel: {
                Message: string;
                GenerateButton: {
                    Text: string;
                };
            };
            ResourceStringPicker: {
                ActualTextPrefix: string;
                InvalidResourceKey: string;
                NoResourceKeyMessage: string;
                CannotFindResourceKey: string;
                WrongFormatActualText: string;
            };
        };
    };
    private internalSchema;
    private internalData;
    editor: SchemaFormEditorComponent;
    private formContentQueryList;
    /**
     * It gets and sets the schema.
     */
    get schema(): DataSchema;
    set schema(value: DataSchema);
    /**
     * It gets and sets the form data.
     */
    get data(): FormData;
    set data(value: FormData);
    dataChange: EventEmitter<FormData>;
    formActionExecuted: EventEmitter<{
        action: string;
        data: any;
    }>;
    /**
     * The host context which is used to provide some behaviors from the host of the form.
     * Custom validation methods will be provided by it.
     */
    formController: any;
    get isFormValid(): boolean;
    get isFormDirty(): boolean;
    get isFormReadyToSubmit(): boolean;
    /**
     * It indicates whether the form is rendered as dev mode.
     */
    isDevMode: boolean;
    constructor(dialogService: DialogService);
    /**
     * Angular life cycle hooks.
     */
    ngOnInit(): void;
    showEditor(): void;
    markAsPristine(): void;
    onFormActionExecuted(action: string, data: any): void;
    getFormContainer(): SchemaFieldLoaderComponentBase;
    getFormContentComponent(): SchemaFormContentComponent;
    getFormContainerLoaderComponent(): SchemaFieldLoaderComponentBase;
    static ɵfac: i0.ɵɵFactoryDeclaration<SchemaFormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SchemaFormComponent, "sme-form[schema], sme-schema-form", never, { "schema": "schema"; "data": "data"; "formController": "formController"; }, { "dataChange": "dataChange"; "formActionExecuted": "formActionExecuted"; }, never, never, false, never>;
}
