/**
 * Copyright IBM Corp. 2024, 2025
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */
import { FC, ForwardRefExoticComponent, ReactNode, RefAttributes } from 'react';
import { CoachmarkContentProps } from './CoachmarkContent';
import { NewPopoverAlignment } from '@carbon/react';
import { ContentHeaderProps } from './ContentHeader';
import { ContentBodyProps } from './ContentBody';
export interface CoachmarkPropsNext {
    /**
     * Provide the contents of the Coachmark.
     */
    children: ReactNode;
    /**
     * Provide an optional class to be applied to the containing node.
     */
    className?: string;
    /**
     * Specifies whether the component is currently open.
     */
    open?: boolean;
    /**
     * Function to call when the close button is clicked.
     */
    onClose?: () => void;
    /**
     * Where to render the Coachmark relative to its target.
     */
    align?: NewPopoverAlignment;
    /**
     * Fine tune the position of the target in pixels.
     */
    position?: {
        x: number;
        y: number;
    };
    /**
     * Specifies whether the component is floating or not.
     */
    floating?: boolean;
    /**
     * Specify whether the component should be rendered on high-contrast.
     */
    highContrast?: boolean;
    /**
     * Specify whether a drop shadow should be rendered on the popover.
     */
    dropShadow?: boolean;
    /**
     * Specify whether a caret should be rendered on the popover. This is intended to use only for coachmark patterns.
     */
    caret?: boolean;
    /**
     * CSS selector for the element that should receive focus when the coachmark opens.
     * If not provided, no automatic focus management will occur.
     */
    selectorPrimaryFocus?: string;
}
type CoachmarkContentComponent = FC<CoachmarkContentProps> & {
    Header: FC<ContentHeaderProps>;
    Body: FC<ContentBodyProps>;
};
export type CoachmarkComponent = ForwardRefExoticComponent<CoachmarkPropsNext & RefAttributes<HTMLDivElement>> & {
    Content: CoachmarkContentComponent;
};
/**
 * Coachmarks are used to call out specific functionality or concepts
 * within the UI that may not be intuitive but are important for the
 * user to gain understanding of the product's main value and discover new use cases.
 */
export declare const Coachmark: CoachmarkComponent;
export {};
//# sourceMappingURL=Coachmark.d.ts.map