import { CSSProperties, ExtractPropTypes, PropType, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { VueNode } from '../_util/type';
import { Gap } from './hooks/useTarget';
import { TourStepProps } from './interface';
import { PlacementType } from './placements';
import { VueTypeValidableDef } from 'vue-types';
export declare const tourProps: () => {
    builtinPlacements: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    };
    popupAlign: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    } & {
        default: () => {
            [key: string]: any;
        };
    };
    steps: {
        type: PropType<Partial<ExtractPropTypes<{
            arrow: {
                type: PropType<boolean | {
                    pointAtCenter: boolean;
                }>;
                default: boolean | {
                    pointAtCenter: boolean;
                };
            };
            target: {
                type: PropType<HTMLElement | (() => HTMLElement) | (() => null) | null>;
                default: HTMLElement | (() => HTMLElement) | (() => null) | null;
            };
            title: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            description: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            placement: {
                type: PropType<PlacementType>;
                default: PlacementType;
            };
            mask: {
                type: PropType<boolean | {
                    style?: CSSProperties;
                    color?: string;
                }>;
                default: boolean | {
                    style?: CSSProperties;
                    color?: string;
                };
            };
            className: {
                type: StringConstructor;
            };
            style: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            scrollIntoViewOptions: {
                type: PropType<boolean | ScrollIntoViewOptions>;
                default: boolean | ScrollIntoViewOptions;
            };
        }>>[]>;
        default: Partial<ExtractPropTypes<{
            arrow: {
                type: PropType<boolean | {
                    pointAtCenter: boolean;
                }>;
                default: boolean | {
                    pointAtCenter: boolean;
                };
            };
            target: {
                type: PropType<HTMLElement | (() => HTMLElement) | (() => null) | null>;
                default: HTMLElement | (() => HTMLElement) | (() => null) | null;
            };
            title: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            description: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            placement: {
                type: PropType<PlacementType>;
                default: PlacementType;
            };
            mask: {
                type: PropType<boolean | {
                    style?: CSSProperties;
                    color?: string;
                }>;
                default: boolean | {
                    style?: CSSProperties;
                    color?: string;
                };
            };
            className: {
                type: StringConstructor;
            };
            style: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            scrollIntoViewOptions: {
                type: PropType<boolean | ScrollIntoViewOptions>;
                default: boolean | ScrollIntoViewOptions;
            };
        }>>[];
    };
    open: {
        type: BooleanConstructor;
        default: boolean;
    };
    defaultCurrent: {
        type: NumberConstructor;
    };
    current: {
        type: NumberConstructor;
    };
    onChange: {
        type: PropType<(current: number) => void>;
        default: (current: number) => void;
    };
    onClose: {
        type: PropType<(current: number) => void>;
        default: (current: number) => void;
    };
    onFinish: {
        type: PropType<() => void>;
        default: () => void;
    };
    mask: {
        type: PropType<boolean | {
            style?: CSSProperties;
            color?: string;
        }>;
        default: boolean | {
            style?: CSSProperties;
            color?: string;
        };
    };
    arrow: {
        type: PropType<boolean | {
            pointAtCenter: boolean;
        }>;
        default: boolean | {
            pointAtCenter: boolean;
        };
    };
    rootClassName: {
        type: StringConstructor;
    };
    placement: {
        type: PropType<PlacementType>;
        default: PlacementType;
    };
    prefixCls: {
        type: StringConstructor;
        default: string;
    };
    renderPanel: {
        type: PropType<(props: TourStepProps, current: number) => VueNode>;
        default: (props: TourStepProps, current: number) => VueNode;
    };
    gap: {
        type: PropType<Gap>;
        default: Gap;
    };
    animated: {
        type: PropType<boolean | {
            placeholder: boolean;
        }>;
        default: boolean | {
            placeholder: boolean;
        };
    };
    scrollIntoViewOptions: {
        type: PropType<boolean | ScrollIntoViewOptions>;
        default: boolean | ScrollIntoViewOptions;
    };
    zIndex: {
        type: NumberConstructor;
        default: number;
    };
};
export type TourProps = Partial<ExtractPropTypes<ReturnType<typeof tourProps>>>;
declare const Tour: DefineComponent<ExtractPropTypes<{
    builtinPlacements: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    };
    popupAlign: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    } & {
        default: () => {
            [key: string]: any;
        };
    };
    steps: {
        type: PropType<Partial<ExtractPropTypes<{
            arrow: {
                type: PropType<boolean | {
                    pointAtCenter: boolean;
                }>;
                default: boolean | {
                    pointAtCenter: boolean;
                };
            };
            target: {
                type: PropType<HTMLElement | (() => HTMLElement) | (() => null) | null>;
                default: HTMLElement | (() => HTMLElement) | (() => null) | null;
            };
            title: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            description: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            placement: {
                type: PropType<PlacementType>;
                default: PlacementType;
            };
            mask: {
                type: PropType<boolean | {
                    style?: CSSProperties;
                    color?: string;
                }>;
                default: boolean | {
                    style?: CSSProperties;
                    color?: string;
                };
            };
            className: {
                type: StringConstructor;
            };
            style: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            scrollIntoViewOptions: {
                type: PropType<boolean | ScrollIntoViewOptions>;
                default: boolean | ScrollIntoViewOptions;
            };
        }>>[]>;
        default: Partial<ExtractPropTypes<{
            arrow: {
                type: PropType<boolean | {
                    pointAtCenter: boolean;
                }>;
                default: boolean | {
                    pointAtCenter: boolean;
                };
            };
            target: {
                type: PropType<HTMLElement | (() => HTMLElement) | (() => null) | null>;
                default: HTMLElement | (() => HTMLElement) | (() => null) | null;
            };
            title: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            description: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            placement: {
                type: PropType<PlacementType>;
                default: PlacementType;
            };
            mask: {
                type: PropType<boolean | {
                    style?: CSSProperties;
                    color?: string;
                }>;
                default: boolean | {
                    style?: CSSProperties;
                    color?: string;
                };
            };
            className: {
                type: StringConstructor;
            };
            style: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            scrollIntoViewOptions: {
                type: PropType<boolean | ScrollIntoViewOptions>;
                default: boolean | ScrollIntoViewOptions;
            };
        }>>[];
    };
    open: {
        type: BooleanConstructor;
        default: boolean;
    };
    defaultCurrent: {
        type: NumberConstructor;
    };
    current: {
        type: NumberConstructor;
    };
    onChange: {
        type: PropType<(current: number) => void>;
        default: (current: number) => void;
    };
    onClose: {
        type: PropType<(current: number) => void>;
        default: (current: number) => void;
    };
    onFinish: {
        type: PropType<() => void>;
        default: () => void;
    };
    mask: {
        type: PropType<boolean | {
            style?: CSSProperties;
            color?: string;
        }>;
        default: boolean | {
            style?: CSSProperties;
            color?: string;
        };
    };
    arrow: {
        type: PropType<boolean | {
            pointAtCenter: boolean;
        }>;
        default: boolean | {
            pointAtCenter: boolean;
        };
    };
    rootClassName: {
        type: StringConstructor;
    };
    placement: {
        type: PropType<PlacementType>;
        default: PlacementType;
    };
    prefixCls: {
        type: StringConstructor;
        default: string;
    };
    renderPanel: {
        type: PropType<(props: TourStepProps, current: number) => VueNode>;
        default: (props: TourStepProps, current: number) => VueNode;
    };
    gap: {
        type: PropType<Gap>;
        default: Gap;
    };
    animated: {
        type: PropType<boolean | {
            placeholder: boolean;
        }>;
        default: boolean | {
            placeholder: boolean;
        };
    };
    scrollIntoViewOptions: {
        type: PropType<boolean | ScrollIntoViewOptions>;
        default: boolean | ScrollIntoViewOptions;
    };
    zIndex: {
        type: NumberConstructor;
        default: number;
    };
}>, () => import("vue/jsx-runtime").JSX.Element | null, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
    builtinPlacements: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    };
    popupAlign: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    } & {
        default: () => {
            [key: string]: any;
        };
    };
    steps: {
        type: PropType<Partial<ExtractPropTypes<{
            arrow: {
                type: PropType<boolean | {
                    pointAtCenter: boolean;
                }>;
                default: boolean | {
                    pointAtCenter: boolean;
                };
            };
            target: {
                type: PropType<HTMLElement | (() => HTMLElement) | (() => null) | null>;
                default: HTMLElement | (() => HTMLElement) | (() => null) | null;
            };
            title: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            description: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            placement: {
                type: PropType<PlacementType>;
                default: PlacementType;
            };
            mask: {
                type: PropType<boolean | {
                    style?: CSSProperties;
                    color?: string;
                }>;
                default: boolean | {
                    style?: CSSProperties;
                    color?: string;
                };
            };
            className: {
                type: StringConstructor;
            };
            style: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            scrollIntoViewOptions: {
                type: PropType<boolean | ScrollIntoViewOptions>;
                default: boolean | ScrollIntoViewOptions;
            };
        }>>[]>;
        default: Partial<ExtractPropTypes<{
            arrow: {
                type: PropType<boolean | {
                    pointAtCenter: boolean;
                }>;
                default: boolean | {
                    pointAtCenter: boolean;
                };
            };
            target: {
                type: PropType<HTMLElement | (() => HTMLElement) | (() => null) | null>;
                default: HTMLElement | (() => HTMLElement) | (() => null) | null;
            };
            title: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            description: {
                type: PropType<VueNode>;
                default: VueNode;
            };
            placement: {
                type: PropType<PlacementType>;
                default: PlacementType;
            };
            mask: {
                type: PropType<boolean | {
                    style?: CSSProperties;
                    color?: string;
                }>;
                default: boolean | {
                    style?: CSSProperties;
                    color?: string;
                };
            };
            className: {
                type: StringConstructor;
            };
            style: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            scrollIntoViewOptions: {
                type: PropType<boolean | ScrollIntoViewOptions>;
                default: boolean | ScrollIntoViewOptions;
            };
        }>>[];
    };
    open: {
        type: BooleanConstructor;
        default: boolean;
    };
    defaultCurrent: {
        type: NumberConstructor;
    };
    current: {
        type: NumberConstructor;
    };
    onChange: {
        type: PropType<(current: number) => void>;
        default: (current: number) => void;
    };
    onClose: {
        type: PropType<(current: number) => void>;
        default: (current: number) => void;
    };
    onFinish: {
        type: PropType<() => void>;
        default: () => void;
    };
    mask: {
        type: PropType<boolean | {
            style?: CSSProperties;
            color?: string;
        }>;
        default: boolean | {
            style?: CSSProperties;
            color?: string;
        };
    };
    arrow: {
        type: PropType<boolean | {
            pointAtCenter: boolean;
        }>;
        default: boolean | {
            pointAtCenter: boolean;
        };
    };
    rootClassName: {
        type: StringConstructor;
    };
    placement: {
        type: PropType<PlacementType>;
        default: PlacementType;
    };
    prefixCls: {
        type: StringConstructor;
        default: string;
    };
    renderPanel: {
        type: PropType<(props: TourStepProps, current: number) => VueNode>;
        default: (props: TourStepProps, current: number) => VueNode;
    };
    gap: {
        type: PropType<Gap>;
        default: Gap;
    };
    animated: {
        type: PropType<boolean | {
            placeholder: boolean;
        }>;
        default: boolean | {
            placeholder: boolean;
        };
    };
    scrollIntoViewOptions: {
        type: PropType<boolean | ScrollIntoViewOptions>;
        default: boolean | ScrollIntoViewOptions;
    };
    zIndex: {
        type: NumberConstructor;
        default: number;
    };
}>> & Readonly<{}>, {
    open: boolean;
    mask: boolean | {
        style?: CSSProperties;
        color?: string;
    };
    zIndex: number;
    gap: Gap;
    onChange: (current: number) => void;
    prefixCls: string;
    onClose: (current: number) => void;
    arrow: boolean | {
        pointAtCenter: boolean;
    };
    builtinPlacements: {
        [key: string]: any;
    };
    popupAlign: {
        [key: string]: any;
    };
    placement: PlacementType;
    scrollIntoViewOptions: boolean | ScrollIntoViewOptions;
    animated: boolean | {
        placeholder: boolean;
    };
    onFinish: () => void;
    renderPanel: (props: TourStepProps, current: number) => VueNode;
    steps: Partial<ExtractPropTypes<{
        arrow: {
            type: PropType<boolean | {
                pointAtCenter: boolean;
            }>;
            default: boolean | {
                pointAtCenter: boolean;
            };
        };
        target: {
            type: PropType<HTMLElement | (() => HTMLElement) | (() => null) | null>;
            default: HTMLElement | (() => HTMLElement) | (() => null) | null;
        };
        title: {
            type: PropType<VueNode>;
            default: VueNode;
        };
        description: {
            type: PropType<VueNode>;
            default: VueNode;
        };
        placement: {
            type: PropType<PlacementType>;
            default: PlacementType;
        };
        mask: {
            type: PropType<boolean | {
                style?: CSSProperties;
                color?: string;
            }>;
            default: boolean | {
                style?: CSSProperties;
                color?: string;
            };
        };
        className: {
            type: StringConstructor;
        };
        style: {
            type: PropType<CSSProperties>;
            default: CSSProperties;
        };
        scrollIntoViewOptions: {
            type: PropType<boolean | ScrollIntoViewOptions>;
            default: boolean | ScrollIntoViewOptions;
        };
    }>>[];
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default Tour;
