import { FormGroupDirective, NgForm } from '@angular/forms';
import { OnDestroy, OnInit } from '@angular/core';
import { QdDialogChangeGuardService } from '../services/dialog-change-guard.service';
import * as i0 from "@angular/core";
/**
 * Tracks pending changes inside a QdDialog by comparing the current form value with the initial value.
 * Supports both Reactive Forms (FormGroupDirective) and Template-Driven Forms (NgForm).
 *
 * Relevant when closing the dialog (X icon or Cancel button):
 * - if the current value equals the initial value, closing will not trigger a pending-changes warning
 * - the form is reset to pristine, so the dialog behaves like “unchanged”
 *
 * #### **Usage (Reactive Form)**
 *
 * ```html
 * <qd-dialog>
 *   <form [formGroup]="myForm" qdPendingChangesGuard>
 *     <input type="text" formControlName="name" />
 *   </form>
 * </qd-dialog>
 * ```
 */
export declare class QdPendingChangesGuardDirective implements OnInit, OnDestroy {
    private ngForm;
    private formGroupDirective;
    private changeGuard;
    private statusSubscription;
    private initialValue;
    private formGroup;
    constructor(ngForm: NgForm, formGroupDirective: FormGroupDirective, changeGuard: QdDialogChangeGuardService);
    ngOnInit(): void;
    private updateStatus;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdPendingChangesGuardDirective, [{ optional: true; }, { optional: true; }, null]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<QdPendingChangesGuardDirective, "[qdPendingChangesGuard]", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=pending-changes-guard.directive.d.ts.map