import { AnimationEvent } from '@angular/animations';
import { CdkPortalOutlet } from '@angular/cdk/portal';
import { ChangeDetectorRef, ElementRef, InjectionToken, Injector, AfterViewInit } from '@angular/core';
import { BehaviorSubject, Subject } from 'rxjs';
import { DrawerOptions } from '../../types';
import * as i0 from "@angular/core";
export declare const DATA: InjectionToken<unknown>;
export declare const duration = "300ms";
type Step = 'hideDone' | 'hideStart' | 'showDone' | 'showStart';
export declare class DrawerInternalComponent<T = unknown, C extends object = object> implements AfterViewInit {
    private readonly injector;
    private readonly cdr;
    bodyPortalOutlet: CdkPortalOutlet;
    mask: ElementRef<HTMLDivElement>;
    animationStep$: Subject<Step>;
    options: DrawerOptions<T, C>;
    showHide$$: BehaviorSubject<"show" | "hide">;
    maskVisible$: Subject<boolean>;
    get drawerClasses(): Record<string, boolean>;
    get width(): string;
    get context(): {
        $implicit: C;
    } & C;
    isTemplateRef: (label: any) => label is import("@angular/core").TemplateRef<unknown>;
    constructor(injector: Injector, cdr: ChangeDetectorRef);
    ngAfterViewInit(): void;
    private attachBodyContent;
    onAnimation(event: AnimationEvent): void;
    updateOptions(options: DrawerOptions<T, C>): void;
    show(): void;
    hide(): void;
    maskClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DrawerInternalComponent<any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DrawerInternalComponent<any, any>, "ng-component", never, {}, {}, never, never, true, never>;
}
export {};
