import { ComponentRef } from '@angular/core';
import { Observable, ReplaySubject, Subject } from 'rxjs';
import { ElWindowComponent } from './window.component';
import { ElWindowConfig, ElWindowState, ElWindowStateChange } from './window.options';
/**
 * The `ElWindowRef` helps to manipulate window after it was created.
 * The window can be dismissed by using `close` method of the windowRef.
 * You can access rendered component as `componentRef` property of the windowRef.
 */
export declare class ElWindowRef {
    config: ElWindowConfig;
    componentRef: ComponentRef<ElWindowComponent>;
    protected prevStateValue: ElWindowState;
    protected stateValue: ElWindowState;
    /**
     * Current window state.
     */
    state: ElWindowState;
    protected stateChange$: ReplaySubject<ElWindowStateChange>;
    /**
     * Emits when window state change.
     */
    readonly stateChange: Observable<ElWindowStateChange>;
    protected _closed: boolean;
    protected closed$: Subject<{}>;
    /**
     * Emits when window was closed.
     */
    readonly onClose: Observable<{}>;
    constructor(config: ElWindowConfig);
    /**
     * Minimize window.
     */
    minimize(): void;
    /**
     * Maximize window.
     */
    maximize(): void;
    /**
     * Set window on top.
     */
    fullScreen(): void;
    toPreviousState(): void;
    /**
     * Closes window.
     * */
    close(): void;
}
