import { ComponentFactoryResolver, ComponentRef, ElementRef, ChangeDetectorRef } from "@angular/core";
import { DrawerConfig, DrawerService } from "../../service/drawer.service";
declare type DrawerComponentCache = {
    ref: ComponentRef<any>;
    config: DrawerConfig;
    toolbarEl: HTMLElement;
    headerEl: HTMLElement;
    topEl: HTMLElement;
};
export declare class DrawerComponent {
    private resolver;
    private service;
    private ref;
    element: ElementRef<HTMLDivElement>;
    drawer: ElementRef<HTMLDivElement>;
    header: ElementRef<HTMLDivElement>;
    content: ElementRef<HTMLDivElement>;
    toolbarSlot: ElementRef<HTMLDivElement>;
    headerSlot: ElementRef<HTMLDivElement>;
    topSlot: ElementRef<HTMLDivElement>;
    private container;
    config: DrawerConfig;
    useAnimation: "yes" | "no";
    isOpened: boolean;
    hiddenDrawer: boolean;
    private componentRefMap;
    constructor(resolver: ComponentFactoryResolver, service: DrawerService, ref: ChangeDetectorRef);
    private createDynamicComponent;
    private destroyDynamicComponent;
    private setComponentData;
    private getSlotElement;
    private setSlotElement;
    setCache(cache: DrawerComponentCache): void;
    setConfig(config: Partial<DrawerConfig>): void;
    show<T>(component: new (...args: any[]) => T, config: DrawerConfig, data: Record<string, any>): T;
    hide(): void;
    back(): void;
    private deleteCache;
    private toggleCache;
    deleteAllCache(cacheKey: string): void;
    onRouteChange(): void;
    toggleOpenStatus(isOpen: boolean, useAnimation?: boolean): void;
    onAnimationEnd(): void;
}
export {};
