import { FormGroup } from '@angular/forms';
import { Observable, Subject } from 'rxjs';
import { services } from 'typescript-angular-utilities';
import __notification = services.notification;
import { AsyncHelper, IWaitValue } from '../../services/async/async.service';
import { FormService } from '../../services/form/form.service';
export interface IBaseFormInputs {
    save: string;
}
export declare const baseInputs: IBaseFormInputs;
export interface ISaveAction<T> {
    (data: T): IWaitValue<T>;
}
export declare class FormComponent {
    save: ISaveAction<any>;
    form: FormGroup;
    private notification;
    asyncHelper: AsyncHelper;
    private formService;
    submitted: Subject<void>;
    readonly dirty: boolean;
    constructor(notification: __notification.NotificationService, asyncHelper: AsyncHelper, formService: FormService, guidService: services.guid.GuidService, parentForm: FormComponent);
    submit(): boolean;
    submitAndWait(): Observable<any>;
    validate(): boolean;
    reset(): void;
    saveForm(): Observable<any>;
    private showErrors();
    private resetAfterSubmit(request);
}
