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

## API Report File for "@atlaskit/onboarding"

> 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
import { Component } from 'react';
import { ComponentType } from 'react';
import { CustomThemeButtonProps } from '@atlaskit/button/types';
import { ElementType } from 'react';
import { ForwardRefExoticComponent } from 'react';
import { jsx } from '@emotion/react';
import { MemoizedFn } from 'memoize-one';
import { ModalFooterProps } from '@atlaskit/modal-dialog';
import { ModalHeaderProps } from '@atlaskit/modal-dialog';
import { default as ModalTransition } from '@atlaskit/modal-dialog/modal-transition';
import { MouseEvent as MouseEvent_2 } from 'react';
import { PureComponent } from 'react';
import { default as React_2 } from 'react';
import { ReactNode } from 'react';
import { Ref } from 'react';
import { RefAttributes } from 'react';
import { ThemeProp } from '@atlaskit/theme/components';

// @public (undocumented)
interface Action extends Omit<CustomThemeButtonProps, 'children'> {
	// (undocumented)
	key?: string;
	// (undocumented)
	text?: ReactNode;
}

// @public (undocumented)
type Actions = Action[];

// @public (undocumented)
type BaseProps = React.HTMLAttributes<HTMLDivElement> & {
	bgColor?: string;
	radius?: number;
	className?: string;
	testId?: string;
	children?: ReactNode;
};

// @public @deprecated (undocumented)
interface CardTokens {
	// @deprecated (undocumented)
	container: Record<string, string | undefined>;
}

// @public
export class Modal extends Component<ModalProps> {
	// (undocumented)
	footerComponent: (
		props: ModalProps,
	) => (() => jsx.JSX.Element | null) | ElementType<ModalFooterProps>;
	// (undocumented)
	headerComponent: (props: ModalProps) => (() => jsx.JSX.Element) | ElementType<ModalHeaderProps>;
	// (undocumented)
	render(): jsx.JSX.Element;
}

// @public @deprecated (undocumented)
export const modalButtonTheme: (current: any, themeProps: Record<string, any>) => any;

// @public (undocumented)
type ModalProps = {
	actions?: Actions;
	children: ReactNode;
	image?: string;
	header?: ElementType<ModalHeaderProps>;
	footer?: ElementType<ModalFooterProps>;
	heading?: string;
	experimental_shouldShowPrimaryButtonOnRight?: boolean;
};

export { ModalTransition };

// @public
export const Spotlight: ({
	dialogWidth,
	pulse,
	testId,
	targetNode,
	target,
	...rest
}: SpotlightProps) => JSX.Element;

// @public @deprecated (undocumented)
export const spotlightButtonTheme: (current: any, themeProps: Record<string, any>) => any;

// @public
export const SpotlightCard: ForwardRefExoticComponent<
	SpotlightCardProps & RefAttributes<HTMLDivElement>
>;

// @public (undocumented)
interface SpotlightCardProps {
	actions?: Actions;
	actionsBeforeElement?: ReactNode;
	children?: ReactNode;
	components?: {
		Header?: ComponentType<any>;
		Footer?: ComponentType<any>;
	};
	heading?: ReactNode;
	headingAfterElement?: ReactNode;
	headingId?: string;
	image?: ReactNode | string;
	// @deprecated (undocumented)
	innerRef?: Ref<HTMLDivElement> | null;
	isFlat?: boolean;
	testId?: string;
	// @deprecated (undocumented)
	theme?: ThemeProp<CardTokens, {}>;
	width?: '100%' | number;
}

// @public
export class SpotlightManager extends PureComponent<
	SpotlightManagerProps,
	{
		spotlightCount: number;
		targets: {
			[key: string]: HTMLElement | void;
		};
	}
> {
	// (undocumented)
	componentDidMount(): void;
	// (undocumented)
	static defaultProps: {
		blanketIsTinted: boolean;
	};
	// (undocumented)
	getStateProviderValue: MemoizedFn<
		(
			this: any,
			targets: any,
		) => {
			opened: () => void;
			closed: () => void;
			targets: any;
		}
	>;
	// (undocumented)
	render(): JSX.Element;
	// (undocumented)
	spotlightClose: () => void;
	// (undocumented)
	spotlightOpen: () => void;
	// (undocumented)
	state: {
		spotlightCount: number;
		targets: {};
	};
	// (undocumented)
	targetRef: (name: string) => (element: HTMLElement | void) => void;
}

// @public (undocumented)
interface SpotlightManagerProps {
	blanketIsTinted?: boolean;
	children: ReactNode;
	// @deprecated (undocumented)
	component?: ElementType;
}

// @public (undocumented)
interface SpotlightProps {
	actions?: Actions;
	actionsBeforeElement?: ReactNode;
	children?: ReactNode;
	dialogPlacement?:
		| 'bottom center'
		| 'bottom left'
		| 'bottom right'
		| 'left bottom'
		| 'left middle'
		| 'left top'
		| 'right bottom'
		| 'right middle'
		| 'right top'
		| 'top center'
		| 'top left'
		| 'top right';
	dialogWidth?: number;
	footer?: ComponentType<any>;
	header?: ComponentType<any>;
	heading?: string;
	headingAfterElement?: ReactNode;
	image?: string;
	pulse?: boolean;
	target?: string;
	targetBgColor?: string;
	targetNode?: HTMLElement;
	targetOnClick?: (eventData: { event: MouseEvent_2<HTMLElement>; target?: string }) => void;
	targetRadius?: number;
	targetReplacement?: ComponentType<any>;
	testId?: string;
}

// @public
export const SpotlightPulse: ({
	children,
	pulse,
	testId,
	...props
}: TargetProps) => jsx.JSX.Element;

// @public
export const SpotlightTarget: ({ children, name }: SpotlightTargetProps) => JSX.Element;

// @public (undocumented)
interface SpotlightTargetProps {
	children: ReactNode;
	name: string;
}

// @public
export class SpotlightTransition extends React_2.Component<SpotlightTransitionProps, State> {
	// (undocumented)
	static getDerivedStateFromProps(
		props: SpotlightTransitionProps,
		state: State,
	): {
		currentChildren: React_2.ReactNode;
	};
	// (undocumented)
	onExited: () => void;
	// (undocumented)
	render(): JSX.Element;
	// (undocumented)
	state: {
		currentChildren: undefined;
	};
}

// @public (undocumented)
interface SpotlightTransitionProps {
	children?: ReactNode;
}

// @public (undocumented)
interface State {
	// (undocumented)
	currentChildren: ReactNode;
}

// @public (undocumented)
type TargetProps = Omit<BaseProps, 'css'> & {
	pulse?: boolean;
	testId?: string;
};

// @public
export function useSpotlight(): {
	isTargetRendered: (target: string) => boolean;
};

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

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

### Peer Dependencies

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

```json
{
	"react": "^16.8.0",
	"react-dom": "^16.8.0"
}
```

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