import { ElementRef } from '@angular/core';
import { Observable, BehaviorSubject } from 'rxjs';
import { NgxModalOptions } from './ngx-modal-options';
import * as i0 from "@angular/core";
/**
 * Abstract modal
 * @template T - modal data;
 * @template T1 - modal result
 */
export declare abstract class NgxModalComponent<T, T1> {
    /**
     * Observer to return result from modal
     */
    private observer;
    /**
     * Drag handle
     */
    handle: ElementRef | undefined;
    /**
     * Dialog result
     * @type {T1}
     */
    result: T1;
    /**
     * Dialog wrapper (modal placeholder)
     */
    wrapper: ElementRef;
    /**
     * ref of options for this component
     */
    options: NgxModalOptions;
    /**
     * ready$ is when all animations and focusing have comleted
     */
    _ready$: BehaviorSubject<boolean>;
    /**
     * Callback to the holders close function
     */
    private closerCallback;
    /**
     * Constructor
     */
    constructor();
    /**
     * Maps your object passed in the creation to fields in your own Dialog classes
     * @param {T} data
     */
    mapDataObject(data: T): void;
    /**
     * Setup observer
     * @return {Observable<T1>}
     */
    setupObserver(): Observable<T1>;
    /**
     * Defines what happens when close is called - default this
     * will just call the default remove modal process. If overridden
     * must include
     * @param callback
     */
    onClosing(callback: (component: NgxModalComponent<any, any>) => Promise<any>): void;
    /**
     * Closes modal
     */
    close(): Promise<any>;
    /**
     * keypress binding ngx way
     * @param evt
     */
    onKeydownHandler(evt: KeyboardEvent): void;
    get ready$(): Observable<boolean>;
    markAsReady(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxModalComponent<any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxModalComponent<any, any>, "ng-component", never, {}, {}, never, never, false, never>;
}
