import { DialogRef } from '@angular/cdk/dialog';
import { OnDestroy, OnInit } from '@angular/core';
import { QdFormCheckboxesConfiguration } from '../../forms/model/forms.interface';
import { QdNotificationsService } from '../../notifications/services/notifications-service.service';
import { QdSnackbarService } from '../../notifications/services/snackbar.service';
import { QdDialogConfirmationConfig, QdDialogConfirmationResolver } from '../models/confirmation.model';
import { QdDialogService } from '../services/dialog.service';
import * as i0 from "@angular/core";
export declare class QdDialogConfirmationInfoDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<QdDialogConfirmationInfoDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<QdDialogConfirmationInfoDirective, "[qdDialogConfirmationInfo]", never, {}, {}, never, never, false, never>;
}
export declare class QdDialogConfirmationSuccessDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<QdDialogConfirmationSuccessDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<QdDialogConfirmationSuccessDirective, "[qdDialogConfirmationSuccess]", never, {}, {}, never, never, false, never>;
}
export declare class QdDialogConfirmationErrorDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<QdDialogConfirmationErrorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<QdDialogConfirmationErrorDirective, "[qdDialogConfirmationError]", never, {}, {}, never, never, false, never>;
}
/**
 * `QdDialogConfirmationComponent` represents a confirmation dialog for your application.
 * It handles different states (info, success, error) based on the configuration.
 * The component uses `QdDialogConfirmationConfig` to configure its behavior and appearance.
 *
 * ####**Usage**
 *
 * ```ts
 * // Your custom confirmation resolver service
 * @Injectable()
 * export class MyDialogConfirmationService implements QdDialogConfirmationResolver {
 *   resolve(): Observable<boolean> {
 *     // Your API call
 *   }
 * }
 *
 * // Your custom dialog content component
 * @Component({
 *   selector: 'my-dialog-confirmation-content',
 *   templateUrl: 'my-dialog-confirmation-content.html',
 *   providers: [
 *     {
 *       provide: QD_DIALOG_CONFIRMATION_RESOLVER_TOKEN,
 *       useClass: MyDialogConfirmationService
 *     }
 *   ],
 *   ...
 *   })
 * class DialogConfirmationContentComponent {
 *   dialogConfig: QdDialogConfirmationConfig = { ... }
 * }
 *
 * // Your custom dialog toggle component
 * @Component({
 *   selector: 'my-dialog-confirmation-toggle',
 *   template: ` <button qdButton (click)="open()">Open Dialog</button> `
 * })
 * class DialogConfirmationToggleErrorComponent {
 *   get config(): QdDialogConfig {
 *     return {
 *       title: { i18n: 'i18n.my.dialog.title' },
 *       dialogSize: QdDialogSize.Small
 *     };
 *   }
 *
 *   constructor(private service: QdDialogService) {}
 *
 *   open() {
 *     const dialogRef = this.service.open(DialogConfirmationContentComponent, this.config);
 *
 *     dialogRef.closed.subscribe(result => console.log(result));
 *   }
 * }
 * ```
 *
 * ```html
 * // Your custom dialog content template
 * <qd-dialog-confirmation [config]="dialogConfig">
 *   <qd-text-section qdDialogConfirmationInfo>Your custom info content</qd-text-section>
 *   <qd-text-section qdDialogConfirmationSuccess>Your custom success content</qd-text-section>
 *   <qd-text-section qdDialogConfirmationError>Your custom error content</qd-text-section>
 * </qd-dialog-confirmation>
 * ```
 */
export declare class QdDialogConfirmationComponent implements OnInit, OnDestroy {
    private readonly confirmationResolver;
    private readonly dialogService;
    private readonly qdNotificationService;
    private readonly dialogRef;
    private readonly snackbarService;
    /**
     * The configuration object of the QdDialogConfirm component.
     */
    config: QdDialogConfirmationConfig;
    /**
     * A static test ID for integration tests can be set.
     * The value for the HTML attribute [data-test-id].
     */
    testId: string;
    notificationContext: string;
    confirmChecked: string[];
    checkboxConfig?: QdFormCheckboxesConfiguration;
    private _confirmSubscription;
    get isLoading(): boolean;
    get isInfoState(): boolean;
    get isSuccessState(): boolean;
    get isErrorState(): boolean;
    get isConfirmed(): boolean;
    get useCheckbox(): boolean;
    constructor(confirmationResolver: QdDialogConfirmationResolver, dialogService: QdDialogService, qdNotificationService: QdNotificationsService, dialogRef: DialogRef, snackbarService: QdSnackbarService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    close(): void;
    confirm(): void;
    submit(): void;
    private handleSuccess;
    private handleError;
    private addErrorNotification;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdDialogConfirmationComponent, [{ optional: true; }, null, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QdDialogConfirmationComponent, "qd-dialog-confirmation", never, { "config": { "alias": "config"; "required": true; }; "testId": { "alias": "data-test-id"; "required": false; }; }, {}, never, ["[qdDialogConfirmInfo]", "[qdDialogConfirmSuccess]", "[qdDialogConfirmError]"], false, never>;
}
//# sourceMappingURL=dialog-confirmation.component.d.ts.map