import { EventEmitter } from '../../stencil-public-runtime';
import { ObservableMap } from '@stencil/store';
import { MediaType } from "../../managers/mediaType/constants";
import { SIDE_NAVIGATION_PATH_VALIDATION_TYPES } from "../../utils/enums";
import { NavigationStoreState } from './utils/side-navigation-store';
import { SlSideNavigationElementSelected } from './utils/types';
export declare class SlSideNavigation {
    el: HTMLSlSideNavigationElement;
    private invokeSelectedCallback;
    private componentDidLoadComplete;
    private currentUrl;
    private intervalId;
    private allManagers;
    /** Whether multiple menu accordions can be open at the same time. */
    keepOpen: boolean;
    /** (optional) Description of the menu text read by the screen reader */
    srHint?: string;
    /** Map widows size to media types */
    mapSizeToMediaTypes: MediaType;
    /** (optional)  Base path of the url. Must start with a "/" */
    basePathname?: string;
    /** Disable the mobile view "/" */
    disableMobileView: boolean;
    /** By default if pathname on an item is not null the url will be updated with the pathname. Manage the redirection yourself. Disable on all sl-side-navigation-item. */
    disableUpdatePathname: boolean;
    /** By default if pathname on an item is not null the item will be selected if the url change. Manage the url modification yourself. Disable on all sl-side-navigation-item. */
    disableSelectWithPathname: boolean;
    /** Allow reselection of already selected items */
    allowReselection: boolean;
    /** All different validation types for the pathname. Be careful with contains basePathname will be not take in consideration */
    pathnameValidationType: SIDE_NAVIGATION_PATH_VALIDATION_TYPES | `${SIDE_NAVIGATION_PATH_VALIDATION_TYPES}` | ((currentPath: string, itemPath: string) => boolean);
    /**
     * Callback that will fire when the tabs is selected.
     */
    selectedCallback?: ((el: HTMLSlSideNavigationItemElement, keyName: string, pathname: string) => void) | string;
    /**
     * Event that will fire when the tabs is selected.
     */
    itemSelectedEvent: EventEmitter<SlSideNavigationElementSelected>;
    /** Global store of sl-side-navigation component */
    store: ObservableMap<NavigationStoreState>;
    selectedCallbackChanged(): void;
    mapSizeToMediaTypesChanged(): void;
    basePathnameChanged(): void;
    disableUpdatePathnameChanged(): void;
    pathnameValidationTypeChanged(): void;
    allowReselectionChanged(): void;
    constructor();
    componentWillLoad(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    private setInvokeSelectedCallback;
    private updateSelectionWithPathname;
    private itemSelected;
    render(): any;
}
