import { Dialog, DialogRef } from '@angular/cdk/dialog';
import { ComponentType } from '@angular/cdk/portal';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { QdConfirmationStatus } from '../models/confirmation.model';
import { QdDialogConfig } from '../models/dialog-config.model';
import { QdPageDialogCanCloseFn } from '../models/dialog-close.model';
import { QdDialogData } from '../models/record-stepper.model';
import * as i0 from "@angular/core";
/**
 * Entry for the Page Dialog close contract.
 * Owner-bound so multiple dialogs cannot accidentally consume each other’s contracts.
 */
export type QdPageDialogCanCloseEntry = {
    owner: DialogRef<unknown>;
    fn: QdPageDialogCanCloseFn;
} | null;
/**
 * **QdDialogService**: Service for managing dialogs in the application.
 * This service provides methods to open, close, and manage the handling of dialog data.
 */
export declare class QdDialogService {
    private dialog;
    private router;
    private pageDialogHost?;
    private _currentRowSubject;
    currentRow$: Observable<unknown>;
    private _currentIndexSubject;
    currentIndex$: Observable<number>;
    private _pageDialogCanClose$;
    pageDialogCanClose$: Observable<QdPageDialogCanCloseEntry>;
    private _confirmationStatus;
    private _isConfirmationLoading;
    private _dialogData;
    get confirmationStatus(): {
        confirmationStatus: QdConfirmationStatus;
    };
    get isConfirmationLoading(): boolean;
    get isConfirmationInfo(): boolean;
    get isConfirmationSuccess(): boolean;
    get isConfirmationError(): boolean;
    set dialogData(data: QdDialogData);
    get dialogData(): QdDialogData;
    constructor(dialog: Dialog, router: Router, pageDialogHost?: ComponentType<unknown>);
    open<C>(component: ComponentType<C>, config: QdDialogConfig): DialogRef<unknown, C>;
    openFullscreen<C>(component: ComponentType<C>, config: QdDialogConfig): DialogRef<unknown, C>;
    openPageDialogWithBreadcrumbs(routePath?: string, data?: {
        [key: string]: any;
    }): void;
    navigateInsideDialog(routePath: string): void;
    closeAll(): void;
    startConfirmation(): void;
    confirmationSuccess(): void;
    confirmationError(): void;
    resetConfirmation(): void;
    updateStep(index: number): void;
    setPageDialogCanClose(fn: QdPageDialogCanCloseFn, owner: DialogRef<unknown>): void;
    clearPageDialogCanClose(owner: DialogRef<unknown>): void;
    clearPageDialogCanCloseForce(): void;
    private updateDialogData;
    private getFirstDialogOutletRoutePathOrThrow;
    private hasRoutePathParameters;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdDialogService, [null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<QdDialogService>;
}
//# sourceMappingURL=dialog.service.d.ts.map