import { AfterViewInit, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
import { Observable } from 'rxjs';
import { QdCommentsComponent } from '../comments/comments.component';
import { QdSearchPostBodyData } from '../search/model/search-post-body';
import { QdSearchService } from '../search/services/search.service';
import { QdShellHeaderComponent } from './header/shell-header.component';
import { QdShellConfig } from './model/shell-config.interface';
import { QdNavigationService } from './services/navigation.service';
import { QdShellHeaderMinimizationService } from './services/shell-header-minimization.service';
import { QdShellLeftService } from './services/shell-left.service';
import { QdShellRightService } from './services/shell-right.service';
import * as i0 from "@angular/core";
/**
 * **QdShell** is located in the very top level of an Application UI. It includes the router outlet to allow rendering pages configured in your application's routing.<br />
 *
 * ### **Features**
 * - **RWD Ready**: QdShell is RWD-enabled out of the box.
 * - **Navigation**: Configure the shell to allow the user navigating between applications.
 * - **Service Navigation (Header Widget)**: Use the built-in mechanism to embed auth handling components.
 * - **Header appearance**: Depending on internal or external use, QdShell renders a different header style.
 * - **Notifications**: Embed notifications on the right of your application.
 *
 * ### **Header appearance**
 *
 * At routing level you can determine whether the page is the home page or not. If set to true, the copyright information in Shell footer is shown.
 *
 * Attached find a sample routing configuration:
 *
 * ```ts
 * {
 *   path: '',
 *   component: AppHomeComponent,
 *   data: {
 *     isHome: true
 *   }
 * }```
 *
 * Depending whether your application is for internal use, the header should be shown as minimized. An application for internal use can be configured by
 * setting the isInternal property in the Shell's configuration. For external applications the header will be maximized. If the property is not provided,
 * the header is only maximized for home pages.
 *
 * ```ts
 * shellConfig: QdShellConfig = {
 *   ...
 *   isInternal: true
 *   ...
 * }
 */
export declare class QdShellComponent implements OnInit, AfterViewInit, OnDestroy {
    private readonly searchService;
    private readonly navigationService;
    private readonly headerMinimizationService;
    private readonly shellLeftService;
    private readonly shellRightService;
    /**
     * The configuration of the shell.
     * * @default {
     *   isInternal: false,
     *   hasSearch: false,
     *   headerWidget: {
     *     isDisabled: false
     *   }
     * }
     */
    set config(value: QdShellConfig);
    get config(): QdShellConfig;
    /**
     * Emits an event when the global search has been triggered. <br />
     * Return value is the result object of the search.
     */
    searchQueryStringOutput: EventEmitter<string>;
    /**
     * Emits an event when the global search has been triggered. <br />
     * Return value is the result object of the search.
     */
    searchPostBodyOutput: EventEmitter<QdSearchPostBodyData>;
    /**
     * TODO: Remove in v17! The comments will be integrated in the QdPage.
     */
    shellHeaderComponent: QdShellHeaderComponent;
    commentsComponent: QueryList<QdCommentsComponent>;
    hasNavigation$: Observable<boolean>;
    isNavigationPinned$: Observable<boolean>;
    isNavigationRolledOver$: Observable<boolean>;
    isShellRightOpen$: Observable<boolean>;
    isShellRightPinned$: Observable<boolean>;
    isMinimized$: Observable<boolean>;
    isHome$: Observable<boolean>;
    private _config;
    private _destroy$;
    get isFaded$(): Observable<boolean>;
    constructor(searchService: QdSearchService, navigationService: QdNavigationService, headerMinimizationService: QdShellHeaderMinimizationService, shellLeftService: QdShellLeftService, shellRightService: QdShellRightService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private closeShellRightIfCommentsDisappear;
    ngOnDestroy(): void;
    handleRouterOutletActivation(routeComponentInstance: any): void;
    private passConfigToServices;
    private subscribeToSearchService;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdShellComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QdShellComponent, "qd-shell", never, { "config": { "alias": "config"; "required": false; }; }, { "searchQueryStringOutput": "searchQueryStringOutput"; "searchPostBodyOutput": "searchPostBodyOutput"; }, ["commentsComponent"], ["qd-comments"], false, never>;
}
//# sourceMappingURL=shell.component.d.ts.map