import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { GlobalConfig, EuiLanguage, EuiMenuItem } from '@eui/base';
import { I18nService } from './i18n';
import { Router } from '@angular/router';
import { StoreService } from './store/store.service';
import * as i0 from "@angular/core";
export interface UIState<BP = any, DI = any, AMD = any, BPV = any> {
    appName?: string;
    appShortName?: string;
    appSubTitle?: string;
    appBaseFontSize?: string;
    isSidebarOpen?: boolean;
    isSidebarActive?: boolean;
    hasSidebar?: boolean;
    hasBreadcrumb?: boolean;
    hasHeader?: boolean;
    hasHeaderLogo?: boolean;
    hasHeaderEnvironment?: boolean;
    hasToolbar?: boolean;
    hasToolbarMegaMenu?: boolean;
    hasToolbarMenu?: boolean;
    environmentValue?: string;
    isSidebarHidden?: boolean;
    isSidebarFocused?: boolean;
    hasSidebarCollapsedVariant?: boolean;
    hasTopMessage?: boolean;
    windowWidth?: number;
    windowHeight?: number;
    mainContentHeight?: number;
    pageHeaderHeight?: number;
    breakpoint?: string;
    wrapperClasses?: string;
    breakpoints?: BP;
    breakpointValues?: BPV;
    menuLinks?: EuiMenuItem[];
    sidebarLinks?: EuiMenuItem[];
    combinedLinks?: EuiMenuItem[];
    isBlockDocumentActive?: boolean;
    deviceInfo: DI;
    activeLanguage: string;
    languages: (string | EuiLanguage)[];
    appMetadata: AMD;
    hasModalActive?: boolean;
    isDimmerActive?: boolean;
}
export declare class EuiAppShellService {
    protected config: GlobalConfig;
    private http;
    private platformId;
    private document;
    private router;
    private storeService;
    private i18nService;
    navigationStartCustomHandler: () => void;
    navigationEndCustomHandler: () => void;
    get state$(): Observable<UIState>;
    get breakpoint$(): Observable<string>;
    get breakpoints$(): Observable<any>;
    get state(): UIState;
    set isSidebarOpen(isOpen: boolean);
    get isSidebarOpen(): boolean;
    set isSidebarActive(isActive: boolean);
    set sidebarLinks(links: EuiMenuItem[]);
    set hasSidebarCollapsedVariant(isActive: boolean);
    set menuLinks(links: EuiMenuItem[]);
    set isBlockDocumentActive(isActive: boolean);
    get hasHeader(): boolean;
    get isDimmerActive(): boolean;
    set isDimmerActive(isActive: boolean);
    private _state$;
    private _breakpoint$;
    private _breakpoints$;
    constructor(config: GlobalConfig, http: HttpClient, platformId: object, document: Document, router: Router, storeService: StoreService, i18nService: I18nService);
    setState(nextState: UIState, updateI18?: boolean): void;
    /**
     * Emits a slice from the state whether that changes
     *
     * @param key can be 'key' or 'key.sub.sub'
     */
    getState<T = any>(key?: string): Observable<T>;
    sidebarToggle(): void;
    dimmerActiveToggle(): void;
    setDimmerActiveState(activeState: boolean): void;
    fetchAppMetadata(metadataFilePath?: string): void;
    activateSidebar(): void;
    activateSidebarHeader(): void;
    activateSidebarFooter(): void;
    activateHeader(): void;
    activateBreadcrumb(): void;
    activateTopMessage(height: number): void;
    activateToolbar(): void;
    activateToolbarMegaMenu(): void;
    activateToolbarMenu(): void;
    /**
     * Returns the current value of --eui-f-size-base CSS variable
     */
    getBaseFontSize(): string;
    /**
     * Updates the current value of --eui-f-size-base CSS variable and the UIState appBaseFontSize
     */
    setBaseFontSize(newsize: string): void;
    private getWrapperClasses;
    private getBreakpoint;
    private getBreakpoints;
    private getJson;
    private extractData;
    private handleError;
    private bindActiveLanguageToAppShellState;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiAppShellService, [{ optional: true; }, null, null, null, null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<EuiAppShellService>;
}
//# sourceMappingURL=eui-app-shell.service.d.ts.map