import { Overlay } from '@angular/cdk/overlay';
import { OnDestroy } from '@angular/core';
import { Subject } from 'rxjs';
import { DrawerRef } from './drawer-ref';
import { DrawerOptions } from './types';
import * as i0 from "@angular/core";
export declare class DrawerService<T = unknown, C extends object = object, R = unknown> implements OnDestroy {
    private readonly overlay;
    private overlayRef;
    options: DrawerOptions<T, C>;
    drawerRef: DrawerRef<T, C, R>;
    invisible$: Subject<void>;
    private drawerInternalComponentRef;
    constructor(overlay: Overlay);
    open(options: DrawerOptions<T, C>): DrawerRef<T, C, R>;
    updateOptions(options: DrawerOptions<T, C>): void;
    private createOverlay;
    private createDrawer;
    private getOverlayConfig;
    private dispose;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DrawerService<any, any, any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DrawerService<any, any, any>>;
}
