import { EventEmitter } from '../../../stencil-public-runtime';
import { ObservableMap } from '@stencil/store';
import { NavigationStoreState } from '../utils/side-navigation-store';
import { SlSideNavigationElementSelected } from '../utils/types';
export declare class SlSideNavigationItem {
    el: HTMLSlSideNavigationItemElement;
    private componentDidLoadComplete;
    private forceRaseUpEvent;
    private layer;
    private invokeSelectedCallback;
    private unregisterOnChange;
    private unregisterPathTracking;
    /** Label of the current menu */
    label?: string;
    /** Activate an element. Normally one element must be always selected */
    selected: boolean;
    /** (optional) Specific path of the url. Must start with a "/" */
    pathname?: string;
    /** (optional) Key name send on event and function when element is selected. */
    keyName?: string;
    /** (optional) Display an icon on the left line for this menu. This value override displayType */
    iconName?: string;
    /** (optional) Description text read by the screen reader. Will be appended to the expand button content. */
    srExpandHint?: string;
    /** (optional) Description text read by the screen reader */
    srIconHint?: string;
    /** Display button on mobile in bottom. Up to 3 elements */
    isOnTopMobile: boolean;
    /** (optional) If you want to display an icon just for mobile in bottom. */
    iconNameMobile?: string;
    /** (optional) Description text read by the screen reader */
    srIconMobileHint?: string;
    /** Disable cursor and action in the button element. */
    disabled: boolean;
    /** Force to open or close the accordion. Normally it's done automatically. This component must have children */
    accordionOpen: boolean;
    /** By default if pathname is not null the url will be updated with the pathname. Manage the redirection yourself. */
    disableUpdatePathname: boolean;
    /** By default if pathname is not null the item will be selected if the url change. Manage the url modification yourself. */
    disableSelectWithPathname: boolean;
    /**
     * Callback that will fire when the tabs is selected.
     */
    selectedCallback?: ((element: HTMLSlSideNavigationItemElement, keyName: string, pathname: string) => void) | string;
    /** Allow reselection of already selected item */
    allowReselection: boolean;
    /**
     * Event that will fire when the tabs is selected.
     */
    itemSelectedEvent: EventEmitter<SlSideNavigationElementSelected>;
    store: ObservableMap<NavigationStoreState>;
    showAccordion: boolean;
    processedContent: Element[];
    isChildren: boolean;
    firstElement: boolean;
    selectedCallbackChanged(): void;
    selectedChanged(): void;
    pathnameChanged(): void;
    constructor();
    componentWillLoad(): void;
    componentDidLoad(): void;
    componentDidUpdate(): void;
    disconnectedCallback(): void;
    private setInvokeSelectedCallback;
    /**
     * Event when selection changed check if the new selection is the current element
     */
    private selectedItemChanged;
    /**
     * All cases where we updating the selection
     */
    private updateSelection;
    private updateSelectionWithSelected;
    private updateSelectionWithPathname;
    /**
     * Rase up all event is the selection changed and is activated
     */
    private raseUpEventSelectionChanged;
    /**
     * Minor functions
     */
    /**
     * Check if the pathname is matching the current path
     * @returns true if the pathname is matching the current path
     */
    private isMatch;
    private hasSlot;
    private getPathname;
    private updateIsAccordionOpen;
    private toggle;
    private bypassMenu;
    private getSelectedData;
    private navigation;
    private accordionHeader;
    render(): any;
}
