import { AnimationEvent } from '@angular/animations';
import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
import { ChangeDetectorRef, ComponentRef, ElementRef, EmbeddedViewRef, EventEmitter, InjectionToken, OnDestroy } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { KbqSidepanelAnimationState } from './sidepanel-animations';
import { KbqSidepanelConfig } from './sidepanel-config';
import * as i0 from "@angular/core";
export declare const KBQ_SIDEPANEL_WITH_INDENT: InjectionToken<boolean>;
export declare const KBQ_SIDEPANEL_WITH_SHADOW: InjectionToken<boolean>;
export declare class KbqSidepanelContainerComponent extends BasePortalOutlet implements OnDestroy {
    private elementRef;
    private changeDetectorRef;
    sidepanelConfig: KbqSidepanelConfig;
    withIndent: boolean;
    withShadow: boolean;
    /** ID for the container DOM element. */
    id: string;
    /** The portal outlet inside of this container into which the content will be loaded. */
    portalOutlet: CdkPortalOutlet;
    /** The state of the sidepanel animations. */
    animationState: KbqSidepanelAnimationState;
    animationTransform: {
        transformIn: string;
        transformOut: string;
    };
    /** Emits whenever the state of the animation changes. */
    animationStateChanged: EventEmitter<AnimationEvent>;
    get size(): string;
    get trapFocusAutoCapture(): boolean;
    get trapFocus(): boolean;
    /** @docs-private */
    protected readonly indentClickEmitter: Subject<MouseEvent>;
    /** Whether the component has been destroyed. */
    private destroyed;
    constructor(elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef, sidepanelConfig: KbqSidepanelConfig, withIndent: boolean, withShadow: boolean);
    ngOnDestroy(): void;
    /**
     * Gets an observable that emits when the indent has been clicked.
     *
     * @docs-private
     */
    indentClick(): Observable<MouseEvent>;
    /** Attach a component portal as content to this sidepanel container. */
    attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
    /** Attach a template portal as content to this sidepanel container. */
    attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;
    /** Begin animation of the sidepanel entrance into view. */
    enter(): void;
    /** Begin animation of the sidepanel exiting from view. */
    exit(): void;
    onAnimation(event: AnimationEvent): void;
    private setAnimation;
    private setPanelClass;
    private validatePortalAttached;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidepanelContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqSidepanelContainerComponent, "kbq-sidepanel-container", never, {}, {}, never, never, false, never>;
}
