import React, { type ElementType, PureComponent, type ReactNode } from 'react'; import { type MemoizedFn } from 'memoize-one'; export type TargetRef = (element: HTMLElement | null | undefined) => void; export type GetTargetRef = ( /** * The `name` prop passed to the corresponding `SpotlightTarget` * * This is used as a key into the `targets` map owned by `SpotlightManager` * because the `SpotlightManager` stores the target nodes for * descendant `SpotlightTarget` instances. */ name: string) => TargetRef; declare const TargetConsumer: React.Consumer; declare const SpotlightContext: React.Context<{ opened: () => void; closed: () => void; targets: { [key: string]: HTMLElement | undefined; }; }>; declare const SpotlightStateConsumer: React.Consumer<{ opened: () => void; closed: () => void; targets: { [key: string]: HTMLElement | undefined; }; }>; export { TargetConsumer }; export { SpotlightContext, SpotlightStateConsumer as SpotlightConsumer }; interface SpotlightManagerProps { /** * Boolean prop for toggling blanket transparency. */ blanketIsTinted?: boolean; /** * Typically the app, or a section of the app. */ children: ReactNode; /** * @deprecated * Component is deprecated and will be removed in the future. */ component?: ElementType; /** * Handler function to be called when the blanket is clicked. */ onBlanketClicked?: () => void; } /** * __Spotlight manager__ * * A spotlight manager manages the visibility of spotlights used to introduce new features to users through focused messages or multi-step tours. * * - [Examples](https://atlassian.design/components/onboarding/examples) * - [Code](https://atlassian.design/components/onboarding/code) * - [Usage](https://atlassian.design/components/onboarding/usage) * * @deprecated Use `@atlaskit/spotlight` instead. */ export default class SpotlightManager extends PureComponent { static defaultProps: { blanketIsTinted: boolean; }; componentDidMount(): void; state: { spotlightCount: number; targets: {}; }; getTargetRef: (name: string) => (element: HTMLElement | null | undefined) => void; spotlightOpen: () => void; spotlightClose: () => void; getStateProviderValue: MemoizedFn<(this: any, targets: any) => { opened: () => void; closed: () => void; targets: any; }>; render(): React.JSX.Element; }