import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { DynamicFormFieldConfig, DynamicFormSection, DynamicFormDialogConfig, DynamicFormDrawerConfig } from './models/dynamic-form.models';
import { TranslationService } from '../../services/translation.service';
import { MaskService } from '../../services/mask.service';
import { LocaleService } from '../../services/locale.service';
import * as i0 from "@angular/core";
export declare class DynamicFormComponent implements OnInit, OnChanges {
    private fb;
    private translationService;
    private maskService;
    private localeService;
    sections: DynamicFormSection[];
    entityData: any;
    mode: 'form' | 'inline-edit';
    displayMode?: 'dialog' | 'drawer';
    visible: boolean;
    dialogConfig: DynamicFormDialogConfig;
    drawerConfig: DynamicFormDrawerConfig;
    showSubmitButton: boolean;
    showCancelButton: boolean;
    submitButtonLabel?: string;
    cancelButtonLabel?: string;
    submitButtonIcon: string;
    cancelButtonIcon: string;
    formReady: EventEmitter<FormGroup<any>>;
    formSubmit: EventEmitter<any>;
    visibleChange: EventEmitter<boolean>;
    onCancel: EventEmitter<void>;
    fieldSave: EventEmitter<{
        field: string;
        value: any;
    }>;
    form: FormGroup;
    loading: boolean;
    editingField: string | null;
    savingField: boolean;
    get allFields(): DynamicFormFieldConfig[];
    get isInlineEditMode(): boolean;
    get isDialogMode(): boolean;
    get isDrawerMode(): boolean;
    get isInlineMode(): boolean;
    get dialogHeader(): string;
    get dialogWidth(): string;
    get dialogDraggable(): boolean;
    get dialogResizable(): boolean;
    get dialogMaximizable(): boolean;
    get dialogCloseOnEscape(): boolean;
    get dialogDismissableMask(): boolean;
    get drawerHeader(): string;
    get drawerPosition(): 'left' | 'right' | 'top' | 'bottom';
    get drawerShowCloseIcon(): boolean;
    get drawerCloseOnEscape(): boolean;
    get drawerDismissable(): boolean;
    get drawerStyle(): {
        [key: string]: string;
    };
    get submitLabel(): string;
    get cancelLabel(): string;
    constructor(fb: FormBuilder, translationService: TranslationService, maskService: MaskService, localeService: LocaleService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    initForm(): void;
    private getDefaultValue;
    private applyInitialDisabledState;
    loadEntityData(): void;
    private processEntityData;
    private getNestedValue;
    resetForm(): void;
    private processFormValue;
    getFieldGridClass(field: DynamicFormFieldConfig): string;
    isFieldVisible(field: DynamicFormFieldConfig): boolean;
    isFieldDisabled(field: DynamicFormFieldConfig): boolean;
    setupConditionalFieldsWatcher(): void;
    updateDisabledFields(): void;
    clearHiddenFields(): void;
    getForm(): FormGroup;
    /**
     * Returns the form values with date/time/lookup fields already converted
     * to the backend-expected format (date → yyyy-MM-dd, time → HH:mm:ss, lookup → object with id).
     * Use this instead of getForm().value when you need processed values without triggering formSubmit.
     */
    getProcessedValue(): any;
    open(entity?: any): void;
    close(): void;
    handleCancel(): void;
    handleSubmit(): void;
    onFormKeydown(event: KeyboardEvent): void;
    getSectionStyle(section: DynamicFormSection): string;
    startEditField(fieldName: string): void;
    isFieldEditing(fieldName: string): boolean;
    saveInlineField(fieldName: string): void;
    cancelInlineEdit(): void;
    completeInlineEdit(): void;
    getFieldDisplayValue(fieldName: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "sia-dynamic-form", never, { "sections": { "alias": "sections"; "required": false; }; "entityData": { "alias": "entityData"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "dialogConfig": { "alias": "dialogConfig"; "required": false; }; "drawerConfig": { "alias": "drawerConfig"; "required": false; }; "showSubmitButton": { "alias": "showSubmitButton"; "required": false; }; "showCancelButton": { "alias": "showCancelButton"; "required": false; }; "submitButtonLabel": { "alias": "submitButtonLabel"; "required": false; }; "cancelButtonLabel": { "alias": "cancelButtonLabel"; "required": false; }; "submitButtonIcon": { "alias": "submitButtonIcon"; "required": false; }; "cancelButtonIcon": { "alias": "cancelButtonIcon"; "required": false; }; }, { "formReady": "formReady"; "formSubmit": "formSubmit"; "visibleChange": "visibleChange"; "onCancel": "onCancel"; "fieldSave": "fieldSave"; }, never, ["*"], true, never>;
}
