/**
 * @packageDocumentation
 * @module navconfig-loader
 */
import { NotificationService } from '@alauda/ui';
import { HttpClient } from '@angular/common/http';
import { InjectionToken } from '@angular/core';
import { Observable } from 'rxjs';
import { K8sApiService } from '../../../api/k8s-api.service';
import { TranslateService } from '../../../translate/public-api';
import { NavGroupConfig, NavItemConfig } from '../nav-menu/public-api';
import * as i0 from "@angular/core";
interface NavigationConfigConfigMapData {
    buildIn: {
        [name: string]: {
            label: string;
            hidden: boolean;
        };
    };
    customs: Array<{
        label: string;
        icon?: string;
        iconData?: string;
        hidden: boolean;
        href: string;
    }>;
}
export declare const NAV_CONFIG_LOCAL_STORAGE_KEY: InjectionToken<string>;
export type Nav = NavItemConfig | NavGroupConfig;
export declare class NavConfigLoaderService {
    private readonly http;
    private readonly translate;
    private readonly notification;
    private readonly localStorageKey;
    private readonly k8sApi;
    private readonly cachedConfig;
    constructor(http: HttpClient, translate: TranslateService, notification: NotificationService, localStorageKey: string, k8sApi: K8sApiService);
    loadNavConfig(address: string): Observable<string>;
    loadNavTree(address: string, cmConfigName: string, withGroup?: boolean, enjoyEmpty?: boolean): Observable<Nav[]>;
    configTree(treeItemConfig: NavItemConfig[], config: NavigationConfigConfigMapData): import("../../../core/public-api").Tree[];
    configTreeWithGroup(treeGroupConfig: NavGroupConfig[], config: NavigationConfigConfigMapData, enjoyEmpty?: boolean): {
        items: NavItemConfig[];
        name?: string;
        title?: string;
    }[];
    parseYaml(): import("rxjs").OperatorFunction<string, Nav[]>;
    mapToAuiNav(withGroup?: boolean): import("rxjs").OperatorFunction<Nav[], Nav[]>;
    /**
     * @param name
     * 加载左导航配置 todo: 添加文档链接
     */
    loadCmConfig(name: string): Observable<NavigationConfigConfigMapData>;
    private buildLoadStream;
    private readonly mapToAuiNavItem;
    private toastParseError;
    private localKey;
    private setLocal;
    private getLocal;
    static ɵfac: i0.ɵɵFactoryDeclaration<NavConfigLoaderService, [null, null, null, { optional: true; }, null]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NavConfigLoaderService>;
}
export {};
