import { HttpClient } from '@angular/common/http';
import { OnDestroy } from '@angular/core';
import { Router } from '@angular/router';
import { ConfigService, MenuIncludeService, MenuItem } from '@valtimo/shared';
import { UserProviderService } from '@valtimo/security';
import { NGXLogger } from 'ngx-logger';
import { Observable } from 'rxjs';
import { PendingChangesService } from '../../pending-changes/pending-changes.service';
import { AppendMenuItemsFunction } from '../../../models';
import { KeycloakService } from 'keycloak-angular';
import * as i0 from "@angular/core";
export declare class MenuService implements OnDestroy {
    private readonly configService;
    private readonly http;
    private readonly logger;
    private readonly menuIncludeService;
    private readonly pendingChangesService;
    private readonly router;
    private readonly userProviderService;
    private readonly keycloakService;
    private readonly _activeParentSequenceNumber$;
    private readonly _menuItems$;
    private readonly reloadActiveSequence$;
    private readonly reload$;
    includeFunctionObservables: {
        [key: string]: Observable<boolean>;
    };
    private readonly menuConfig;
    private readonly currentRoute$;
    get menuItems$(): Observable<MenuItem[]>;
    get menuItemsLoaded$(): Observable<boolean>;
    get activeParentSequenceNumber$(): Observable<string>;
    get closestSequence$(): Observable<string>;
    private readonly _subscriptions;
    private readonly _appendMenuItemFunctions$;
    constructor(configService: ConfigService, http: HttpClient, logger: NGXLogger, menuIncludeService: MenuIncludeService, pendingChangesService: PendingChangesService, router: Router, userProviderService: UserProviderService, keycloakService: KeycloakService);
    init(): void;
    ngOnDestroy(): void;
    reload(): void;
    private loadMenuItems;
    private applyMenuRoleSecurity;
    initReload(): void;
    registerAppendMenuItemsFunction(functionValue: AppendMenuItemsFunction): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MenuService>;
}
//# sourceMappingURL=menu.service.d.ts.map