import type { CommonSlotProps } from '../types';
import { type VisibilityCallback } from './use-side-nav-visibility-callbacks';
type SideNavProps = CommonSlotProps & {
    /**
     * The content of the layout area.
     * Should include side nav layout areas as required: `SideNavHeader`, `SideNavContent`, `SideNavFooter`.
     * Within these, you can use side nav menu items.
     */
    children: React.ReactNode;
    /**
     * The accessible name of the slot, announced by screen readers.
     */
    label?: string;
    /**
     * @deprecated
     *
     * This prop is being replaced by `defaultSideNavCollapsed` on the `Root` element,
     * and will be removed in the future.
     *
     * ---
     *
     * Whether the side nav should be collapsed by default __on desktop screens__.
     *
     * It is always collapsed by default for mobile screens.
     *
     * This value is used when the side nav is first mounted, but you should continuously update your
     * persisted state using the `onCollapse` and `onExpand` callbacks, to ensure it is up to date
     * when the app is reloaded.
     *
     * __Note:__ If using this prop, ensure that it is also provided to the `SideNavToggleButton`.
     * This is to ensure the state is in sync before post-SSR hydration.
     */
    defaultCollapsed?: boolean;
    /**
     * The default width of the side nav layout area.
     *
     * It should be an integer between the resize bounds - the minimum is 240px and the maximum is 50% of the viewport width.
     *
     * It is only used when the side nav is first mounted, but you should continuously update your
     * persisted state using the `onResizeEnd` callback of `PanelSplitter`, to ensure it is up to date
     * when the app is reloaded.
     */
    defaultWidth?: number;
    /**
     * Called when the side nav is expanded.
     *
     * Note: The trigger parameter is only provided when the `platform_dst_nav4_fhs_instrumentation_1` feature flag is enabled.
     */
    onExpand?: VisibilityCallback;
    /**
     * Called when the side nav is collapsed.
     *
     * Note: The trigger parameter is only provided when the `platform_dst_nav4_fhs_instrumentation_1` feature flag is enabled.
     */
    onCollapse?: VisibilityCallback;
    /**
     * Called when the side nav begins peeking / flyout.
     */
    onPeekStart?: () => void;
    /**
     * Called when the side nav stops peeking / flyout.
     */
    onPeekEnd?: (args: {
        trigger: 'mouse-leave' | 'side-nav-expand';
    }) => void;
    /**
     * Whether the side nav should be toggled in response to the built-in keyboard shortcut. Use this callback to
     * conditionally disable the shortcut based on your own custom checks, e.g. if there is a legacy dialog open.
     *
     * This prop will do nothing if `isSideNavShortcutEnabled` on Root is not set to `true`, as the keyboard event
     * listener is only binded if `isSideNavShortcutEnabled` is `true`.
     *
     * The shortcut key is `Ctrl` + `[`.
     *
     * Note: The built-in keyboard shortcut is behind the `navx-full-height-sidebar` feature flag.
     */
    canToggleWithShortcut?: () => boolean;
};
export declare const onPeekStartDelayMs = 500;
/**
 * The side navigation layout area. It will show on the left (inline start) of the screen.
 *
 * Use the side nav area components (`SideNavHeader`, `SideNavContent`, `SideNavFooter`) to position
 * content within areas of the side nav.
 *
 * You can optionally render a `PanelSplitter` as a child to make the side navigation slot resizable.
 */
export declare function SideNav({ children, defaultCollapsed, defaultWidth, testId, label, // Default value is defined in `SideNavInternal`
skipLinkLabel, // Default value is defined in `SideNavInternal`
onExpand, onCollapse, onPeekStart, onPeekEnd, canToggleWithShortcut, id, }: SideNavProps): JSX.Element;
export {};
