import { SmzDialogBuilder } from '../smz-dialogs/dialog-builder';
import { SmzForm, SmzFormsResponse } from '../../modules/smz-forms/models/smz-forms';
import { SmzFormGroupBuilder } from './form-group-builder';
import { SmzFormUiDefinitionBuilder } from './form-ui-definition-builder';
import { UntypedFormGroup } from '@angular/forms';
export declare class SmzFormBuilder<TResponse> {
    _dialogBuilder: SmzDialogBuilder<TResponse>;
    private defaultConfig;
    _state: SmzForm<TResponse>;
    createdByUiDefinitions: boolean;
    constructor(_dialogBuilder?: SmzDialogBuilder<TResponse>, state?: SmzForm<TResponse>);
    debugMode(): SmzFormBuilder<TResponse>;
    group(name?: string, key?: string): SmzFormGroupBuilder<TResponse>;
    disableFlattenResponse(): SmzFormBuilder<TResponse>;
    runCustomFunctionsOnLoad(): SmzFormBuilder<TResponse>;
    setCustomBehavior(callback: (data: SmzFormsResponse<TResponse>, config: SmzForm<TResponse>, form: UntypedFormGroup, outputEvents: {}) => void): SmzFormBuilder<TResponse>;
    withNestedResponseKeySeparator(separator: string): SmzFormBuilder<TResponse>;
    applyValues(...values: {
        propertyName: string;
        value: any;
    }[]): SmzFormBuilder<TResponse>;
    applyData(data: any, debug?: boolean): SmzFormBuilder<TResponse>;
    setDebounceTime(debouceTime: number): SmzFormBuilder<TResponse>;
    emitChangesOnFocusExit(): SmzFormBuilder<TResponse>;
    enableSubmitOnEnter(): SmzFormBuilder<TResponse>;
    emitChangesOnAllChanges(): SmzFormBuilder<TResponse>;
    avoidEmitChangesOnLoad(): SmzFormBuilder<TResponse>;
    showMultipleErrorsMessages(): SmzFormBuilder<TResponse>;
    setCustomValidator(callback: (data: SmzFormsResponse<TResponse>, formGroup: UntypedFormGroup) => boolean): SmzFormBuilder<TResponse>;
    get dialog(): SmzDialogBuilder<TResponse>;
    build(): SmzForm<TResponse>;
    fromUiDefinition(entity: string): SmzFormUiDefinitionBuilder<TResponse>;
}
