import { ReactElement } from 'react';
import { AnchorEl } from '../../react-popper';
import { AnchorPlacementType } from './components/advanced-tour-anchor';
import { TourAccessibilityType } from '../types';
export type AdvancedTourHandlerFunction = (step: number) => void;
export type AdvancedStepProps = {
    /** Tour component content. */
    content: ReactElement | string | null;
    /** Header icon. (source as path to the image or icon element) */
    headerIcon: ReactElement;
    /** Header icon className */
    headerIconClassName?: string;
    /** Header text className */
    headerTextClassName?: string;
    /** Header text. */
    headerText: string;
    /** Okay (Minimize) button's text. */
    okayButtonText?: string;
    okayButtonClassName?: string;
    placement?: AnchorPlacementType;
};
export type AdvancedTourProps = {
    /** AdvancedTour's Step object that contains required information to show tour. */
    step: AdvancedStepProps;
    /** Function is called on click on the next button.  */
    setNextStep: () => void;
    /** Function is called on click on the prev button. */
    setPrevStep: () => void;
    /** Shows the current step number. */
    stepNumber?: number;
    /** Shows the total amount of steps in the tour. */
    totalSteps?: number;
    /** Defines should we show AdvancedTour or not. */
    showTour: boolean;
    /** Function is called when minimize button is clicked. */
    onSkipHandler: () => void;
    /** ClassName to add custom styles for advancedTour container. */
    className?: string;
    /** AnchorRef of the element which is used for AdvancedTour to be attached. By default it's an AdvancedTourAnchor */
    anchorRef: AnchorEl;
    a11yProps: Pick<TourAccessibilityType, 'previousTourButtonAriaLabel' | 'nextTourButtonAriaLabel'>;
};
export type AdvancedTourSettings = {
    /** Unique AdvancedTour id. */
    id: string;
    /** List of the steps for this AdvancedTour. */
    steps: AdvancedStepProps[];
    /** Specific function which will be invoked when users clicks on minimize button. */
    onSkipHandler: AdvancedTourHandlerFunction;
    /** Tour wrapper className */
    tourClassName?: string;
};
export type AdvancedTourHooksParams = {
    /** Defines should the AdvancedTour be opened when  the page is loaded. */
    isShowTour: boolean;
    /** Unique AdvancedTour id. */
    tourId: string;
    /** Defines if the AdvancedTour exists on this page. */
    isTourEnabled: boolean;
    /** Defines if the AdvancedTour will be highlighted. */
    isHighlighted?: boolean;
};
