import { OnInit, OnDestroy, QueryList } from '@angular/core';
import { Router } from '@angular/router';
import { SafeStyle, DomSanitizer } from '@angular/platform-browser';
import { MatDrawerToggleResult } from '@angular/material/sidenav';
import { TdLayoutComponent } from '../layout.component';
import * as i0 from "@angular/core";
export declare class TdNavigationDrawerMenuDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<TdNavigationDrawerMenuDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TdNavigationDrawerMenuDirective, "[tdNavigationDrawerMenu]", never, {}, {}, never, never, true, never>;
}
export declare class TdNavigationDrawerToolbarDirective {
    static ɵfac: i0.ɵɵFactoryDeclaration<TdNavigationDrawerToolbarDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TdNavigationDrawerToolbarDirective, "[tdNavigationDrawerToolbar]", never, {}, {}, never, never, true, never>;
}
export declare class TdNavigationDrawerComponent implements OnInit, OnDestroy {
    private _layout;
    private _router;
    private _sanitize;
    private _menuToggled;
    private _backgroundImage;
    private _destroy$;
    get menuToggled(): boolean;
    _drawerMenu: QueryList<TdNavigationDrawerMenuDirective>;
    _toolbar: QueryList<TdNavigationDrawerToolbarDirective>;
    /**
     * Checks if there is a [TdNavigationDrawerMenuDirective] has content.
     */
    get isMenuAvailable(): boolean;
    /**
     * Checks if there is a [TdNavigationDrawerToolbarDirective] has content.
     */
    get isCustomToolbar(): boolean;
    /**
     * Checks if there is a background image for the toolbar.
     */
    get isBackgroundAvailable(): boolean;
    /**
     * sidenavTitle?: string
     * Title set in sideNav.
     */
    sidenavTitle?: string;
    /**
     * icon?: string
     *
     * icon name to be displayed before the title
     */
    icon?: string;
    /**
     * logo?: string
     *
     * logo icon name to be displayed before the title.
     * If [icon] is set, then this will not be shown.
     */
    logo?: string;
    /**
     * avatar?: string
     *
     * avatar url to be displayed before the title
     * If [icon] or [logo] are set, then this will not be shown.
     */
    avatar?: string;
    /**
     * color?: 'accent' | 'primary' | 'warn'
     *
     * toolbar color option: primary | accent | warn.
     * If [color] is not set, default is used.
     */
    color?: 'accent' | 'primary' | 'warn';
    /**
     * navigationRoute?: string
     *
     * option to set the combined route for the icon, logo, and sidenavTitle.
     */
    navigationRoute?: string;
    /**
     * backgroundUrl?: SafeResourceUrl
     *
     * image to be displayed as the background of the toolbar.
     * URL used will be sanitized, but it should be always from a trusted source to avoid XSS.
     */
    set backgroundUrl(backgroundUrl: any);
    get backgroundImage(): SafeStyle | null;
    /**
     * name?: string
     *
     * string to be displayed as part of the navigation drawer sublabel.
     * if [email] is not set, then [name] will be the toggle menu text.
     */
    name?: string;
    /**
     * email?: string
     *
     * string to be displayed as part of the navigation drawer sublabel in the [toggle] menu text.
     * if [email] and [name] are not set, then the toggle menu is not rendered.
     */
    email?: string;
    /**
     * Checks if router was injected.
     */
    get routerEnabled(): boolean;
    constructor(_layout: TdLayoutComponent, _router: Router, _sanitize: DomSanitizer);
    ngOnInit(): void;
    ngOnDestroy(): void;
    toggleMenu(): void;
    handleNavigationClick(): void;
    /**
     * Proxy toggle method to access sidenav from outside (from td-layout template).
     */
    toggle(): Promise<MatDrawerToggleResult>;
    /**
     * Proxy open method to access sidenav from outside (from td-layout template).
     */
    open(): Promise<MatDrawerToggleResult>;
    /**
     * Proxy close method to access sidenav from outside (from td-layout template).
     */
    close(): Promise<MatDrawerToggleResult>;
    static ɵfac: i0.ɵɵFactoryDeclaration<TdNavigationDrawerComponent, [null, { optional: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TdNavigationDrawerComponent, "td-navigation-drawer", never, { "sidenavTitle": { "alias": "sidenavTitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "logo": { "alias": "logo"; "required": false; }; "avatar": { "alias": "avatar"; "required": false; }; "color": { "alias": "color"; "required": false; }; "navigationRoute": { "alias": "navigationRoute"; "required": false; }; "backgroundUrl": { "alias": "backgroundUrl"; "required": false; }; "name": { "alias": "name"; "required": false; }; "email": { "alias": "email"; "required": false; }; }, {}, ["_drawerMenu", "_toolbar"], ["[td-navigation-drawer-toolbar]", "*", "[td-navigation-drawer-menu]"], true, never>;
}
