import { Overlay } from '@angular/cdk/overlay';
import { InjectionToken, Injector } from '@angular/core';
import { Observable } from 'rxjs';
import { KbqModalControlService } from './modal-control.service';
import { KbqModalRef } from './modal-ref.class';
import { KbqModalComponent } from './modal.component';
import { ConfirmType, IModalOptionsForService } from './modal.type';
import * as i0 from "@angular/core";
/** Injection token that can be used to access the data that was passed in to a modal. */
export declare const KBQ_MODAL_DATA: InjectionToken<unknown>;
/**
 * A builder used for managing service creating modals
 * @docs-private
 */
export declare class ModalBuilderForService {
    private readonly overlay;
    readonly options: IModalOptionsForService;
    private readonly injector;
    private modalRef;
    private overlayRef;
    constructor(overlay: Overlay, options: IModalOptionsForService, injector: Injector);
    getInstance(): KbqModalComponent | null;
    destroyModal(): void;
    private changeProps;
    private createModal;
}
export declare class KbqModalService {
    private readonly overlay;
    private readonly modalControl;
    private injector;
    get openModals(): KbqModalRef[];
    get afterAllClose(): Observable<void>;
    constructor(overlay: Overlay, modalControl: KbqModalControlService, injector: Injector);
    closeAll(): void;
    create<C, R = unknown>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
    confirm<C, R = unknown>(options?: IModalOptionsForService<C>, confirmType?: ConfirmType): KbqModalRef<C, R>;
    open<C, R = unknown>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
    success<C, R = unknown>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
    delete<C, R = unknown>(options?: IModalOptionsForService<C>): KbqModalRef<C, R>;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqModalService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<KbqModalService>;
}
