import { ChangeDetectorRef, EventEmitter, NgZone } from '@angular/core';
import { LfFieldContainerService } from './lf-field-container.service';
import { LfFieldAdhocContainerComponent } from '../lf-field-adhoc-container/lf-field-adhoc-container.component';
import { LfFieldTemplateContainerComponent } from '../lf-field-template-container/lf-field-template-container.component';
import { FieldValue, LfFieldInfo, TemplateValue } from '../field-components/utils/lf-field-types';
import { AppLocalizationService } from '@laserfiche/lf-ui-components/internal-shared';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class LfFieldContainerComponent {
    /** @internal */
    private ref;
    /** @internal */
    private zone;
    /** @internal */
    localizationService: AppLocalizationService;
    collapsible: boolean;
    start_collapsed: boolean;
    fieldValuesChanged: EventEmitter<boolean>;
    templateSelectedChanged: EventEmitter<number>;
    dialogOpened: EventEmitter<void>;
    dialogClosed: EventEmitter<void>;
    /** @internal */
    templateContainer: LfFieldTemplateContainerComponent;
    /** @internal */
    adhocContainer: LfFieldAdhocContainerComponent;
    /** @internal */
    private lfFieldContainerService;
    /** @internal */
    panelOpenState: boolean;
    /** @internal */
    readonly FIELDS: Observable<string>;
    /** @internal */
    readonly TEMPLATE: Observable<string>;
    /** @internal */
    SELECTED_TEMPLATE_NAME: Observable<string>;
    /** @internal */
    getSelectedTemplateName(): Observable<string>;
    /** @internal */
    constructor(
    /** @internal */
    ref: ChangeDetectorRef, 
    /** @internal */
    zone: NgZone, 
    /** @internal */
    localizationService: AppLocalizationService);
    initAsync: (lfFieldContainerService: LfFieldContainerService, templateIdentifier?: number | string) => Promise<void>;
    forceValidation: () => boolean;
    clearAsync: () => Promise<void>;
    getFieldValues: () => {
        [fieldName: string]: FieldValue;
    };
    getNumAdhocFields: () => number;
    resetFieldDataAsync: (fields: {
        value: FieldValue;
        definition: LfFieldInfo;
    }[]) => Promise<void>;
    updateFieldValuesAsync: (values: FieldValue[]) => Promise<void>;
    getTemplateValue: () => TemplateValue | undefined;
    /** @internal */
    onFieldValuesChanged(): void;
    /** @internal */
    onTemplateSelectedChange(selectedTemplateId: number): void;
    /** @internal */
    onDialogOpened(): void;
    /** @internal */
    onDialogClosed(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LfFieldContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LfFieldContainerComponent, "lf-field-container-component", never, { "collapsible": { "alias": "collapsible"; "required": false; }; "start_collapsed": { "alias": "start_collapsed"; "required": false; }; "initAsync": { "alias": "initAsync"; "required": false; }; "forceValidation": { "alias": "forceValidation"; "required": false; }; "clearAsync": { "alias": "clearAsync"; "required": false; }; "getFieldValues": { "alias": "getFieldValues"; "required": false; }; "getNumAdhocFields": { "alias": "getNumAdhocFields"; "required": false; }; "resetFieldDataAsync": { "alias": "resetFieldDataAsync"; "required": false; }; "updateFieldValuesAsync": { "alias": "updateFieldValuesAsync"; "required": false; }; "getTemplateValue": { "alias": "getTemplateValue"; "required": false; }; }, { "fieldValuesChanged": "fieldValuesChanged"; "templateSelectedChanged": "templateSelectedChanged"; "dialogOpened": "dialogOpened"; "dialogClosed": "dialogClosed"; }, never, never, false, never>;
}
