<!-- API Report Version: 2.3 -->

## API Report File for "@atlaskit/side-navigation"

> Do not edit this file. This report is auto-generated using
> [API Extractor](https://api-extractor.com/).
> [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)

### Table of contents

- [Main Entry Types](#main-entry-types)
- [Peer Dependencies](#peer-dependencies)

### Main Entry Types

<!--SECTION START: Main Entry Types-->

```ts
/// <reference types="react" />

import { ButtonItemProps } from '@atlaskit/menu';
import { CSSFn } from '@atlaskit/menu';
import { CustomItemComponentProps } from '@atlaskit/menu';
import { CustomItemProps } from '@atlaskit/menu';
import { ForwardRefExoticComponent } from 'react';
import { HeadingItemProps } from '@atlaskit/menu';
import { HTMLAttributes } from 'react';
import { jsx } from '@emotion/react';
import { LinkItemProps } from '@atlaskit/menu';
import { Overrides } from '@atlaskit/menu';
import { default as React_2 } from 'react';
import { ReactNode } from 'react';
import { RefAttributes } from 'react';
import { SkeletonHeadingItemProps } from '@atlaskit/menu';
import { SkeletonItemProps } from '@atlaskit/menu';

// @public
export const ButtonItem: React_2.ForwardRefExoticComponent<
	ButtonItemProps & React_2.RefAttributes<HTMLElement>
>;

export { ButtonItemProps };
export { ButtonItemProps as GoBackItemProps };

// @public
export const CustomItem: CustomItemPropsHack;

export { CustomItemComponentProps };

export { CustomItemProps };

// @public (undocumented)
interface CustomItemPropsHack {
	// (undocumented)
	<TComponentProps extends {}>(
		props: CustomItemProps<TComponentProps> & {
			ref?: any;
		} & Omit<TComponentProps, keyof CustomItemComponentProps>,
	): JSX.Element | null;
}

// @public
export const Footer: ({
	useDeprecatedApi,
	description,
	iconBefore,
	testId,
	children,
	component,
	cssFn,
	onClick,
}: FooterFacadeProps) => JSX.Element;

// @public (undocumented)
type FooterFacadeProps =
	| (HeaderProps & {
			useDeprecatedApi?: true;
	  })
	| (NewFooterProps & {
			useDeprecatedApi?: false;
			cssFn?: never;
			component?: never;
			onClick?: never;
	  });

// @public (undocumented)
export type FooterProps = HeaderProps | NewFooterProps;

// @public
export const GoBackItem: React_2.ForwardRefExoticComponent<
	ButtonItemProps & React_2.RefAttributes<HTMLElement>
>;

// @public
export const Header: ForwardRefExoticComponent<HeaderProps & RefAttributes<HTMLElement>>;

// @public (undocumented)
export type HeaderProps = {
	cssFn?: CSSFn;
	iconBefore?: React.ReactNode;
	onClick?: (event: React.KeyboardEvent | React.MouseEvent) => void;
	description?: JSX.Element | string;
	children?: React.ReactNode;
	testId?: string;
	component?: React.ComponentType<CustomItemComponentProps>;
};

// @public
export const HeadingItem: (props: HeadingItemProps) => JSX.Element | null;

export { HeadingItemProps };

// @public
export const LinkItem: React_2.ForwardRefExoticComponent<
	LinkItemProps & React_2.RefAttributes<HTMLElement>
>;

export { LinkItemProps };

// @public
export const LoadingItems: ({
	children,
	isLoading,
	fallback,
	testId,
}: LoadingItemsProps) => JSX.Element;

// @public (undocumented)
export interface LoadingItemsProps {
	children: React.ReactNode;
	fallback: React.ReactNode;
	isLoading?: boolean;
	testId?: string;
}

// @public
export const NavigationContent: ForwardRefExoticComponent<
	NavigationContentProps & HTMLAttributes<HTMLElement> & RefAttributes<HTMLElement>
>;

// @public (undocumented)
export interface NavigationContentProps {
	// (undocumented)
	children: React.ReactNode;
	showTopScrollIndicator?: boolean;
	testId?: string;
}

// @public
export const NavigationFooter: ({ children }: NavigationFooterProps) => JSX.Element;

// @public (undocumented)
export interface NavigationFooterProps {
	// (undocumented)
	children: ReactNode;
}

// @public
export const NavigationHeader: (props: NavigationHeaderProps) => jsx.JSX.Element;

// @public (undocumented)
export interface NavigationHeaderProps {
	// (undocumented)
	children: JSX.Element | JSX.Element[];
}

// @public
export const NestableNavigationContent: (props: NestableNavigationContentProps) => jsx.JSX.Element;

// @public (undocumented)
export interface NestableNavigationContentProps {
	children: JSX.Element | JSX.Element[];
	initialStack?: string[];
	onChange?: (stack: string[]) => void;
	onUnknownNest?: (stack: string[]) => void;
	// @deprecated
	overrides?: {
		GoBackItem?: {
			render?: (props: { onClick: () => void; testId?: string }) => React.ReactNode;
		};
	};
	showTopScrollIndicator?: boolean;
	stack?: string[];
	testId?: string;
}

// @public
export const NestingItem: <TCustomComponentProps extends CustomItemComponentProps>(
	props: NestingItemProps<TCustomComponentProps> &
		Omit<TCustomComponentProps, keyof CustomItemComponentProps>,
) => JSX.Element;

// @public (undocumented)
interface NestingItemOverrides extends Overrides {
	GoBackItem?: {
		render?: (props: { onClick: () => void; testId?: string }) => React_2.ReactNode;
	};
}

// @public (undocumented)
export interface NestingItemProps<TCustomComponentProps = CustomItemComponentProps> {
	children: React_2.ReactNode;
	component?: React_2.ComponentType<TCustomComponentProps>;
	cssFn?: CSSFn;
	description?: JSX.Element | string;
	iconAfter?: React_2.ReactNode;
	iconBefore?: React_2.ReactNode;
	id: string;
	isDisabled?: boolean;
	isSelected?: boolean;
	onClick?: (event: React_2.KeyboardEvent | React_2.MouseEvent) => void;
	overrides?: NestingItemOverrides;
	testId?: string;
	title: React_2.ReactNode;
}

// @public (undocumented)
type NewFooterProps = Omit<HeaderProps, 'component' | 'cssFn' | 'onClick'>;

// @public
export const Section: React_2.ForwardRefExoticComponent<
	SectionProps & React_2.RefAttributes<HTMLElement>
>;

// @public (undocumented)
export interface SectionProps {
	children: React_2.ReactNode;
	hasSeparator?: boolean;
	isList?: boolean;
	testId?: string;
	title?: string;
}

// @public
export const SideNavigation: ForwardRefExoticComponent<
	SideNavigationProps & RefAttributes<HTMLElement>
>;

// @public (undocumented)
export interface SideNavigationProps {
	children: JSX.Element | JSX.Element[];
	label: string;
	testId?: string;
}

// @public
export const SkeletonHeadingItem: (props: SkeletonHeadingItemProps) => JSX.Element | null;

export { SkeletonHeadingItemProps };

// @public
export const SkeletonItem: (props: SkeletonItemProps) => JSX.Element | null;

export { SkeletonItemProps };

// @public
export const useShouldNestedElementRender: () => {
	shouldRender: boolean;
};

// @public (undocumented)
export const VAR_SCROLL_INDICATOR_COLOR = '--ds-menu-scroll-indicator-color';

// @public (undocumented)
export const VAR_SEPARATOR_COLOR = '--ds-menu-seperator-color';

// (No @packageDocumentation comment for this package)
```

<!--SECTION END: Main Entry Types-->

### Peer Dependencies

<!--SECTION START: Peer Dependencies-->

```json
{
	"react": "^16.8.0"
}
```

<!--SECTION END: Peer Dependencies-->
