import type { ReactNode } from 'react'; import type { TourProps as RCTourProps, TourStepProps as RCTourStepProps } from '@rc-component/tour'; import type { SemanticClassNames, SemanticClassNamesType, SemanticStyles, SemanticStylesType } from '../_util/hooks'; export type TourSemanticName = 'root' | 'cover' | 'mask' | 'section' | 'footer' | 'actions' | 'indicator' | 'indicators' | 'header' | 'title' | 'description'; export type TourClassNamesType = SemanticClassNamesType; export type TourStylesType = SemanticStylesType; export interface TourProps extends Omit { steps?: TourStepProps[]; prefixCls?: string; current?: number; indicatorsRender?: (current: number, total: number) => ReactNode; actionsRender?: TourStepProps['actionsRender']; type?: 'default' | 'primary'; classNames?: TourClassNamesType; styles?: TourStylesType; className?: string; style?: React.CSSProperties; } export interface TourStepProps extends RCTourStepProps { cover?: ReactNode; nextButtonProps?: { children?: ReactNode; onClick?: () => void; className?: string; style?: React.CSSProperties; }; prevButtonProps?: { children?: ReactNode; onClick?: () => void; className?: string; style?: React.CSSProperties; }; indicatorsRender?: (current: number, total: number) => ReactNode; actionsRender?: (originNode: ReactNode, info: { current: number; total: number; }) => ReactNode; type?: 'default' | 'primary'; classNames?: SemanticClassNames; styles?: SemanticStyles; } export interface TourLocale { Next: string; Previous: string; Finish: string; }