import type { Key, VueNode } from '@antdv/pro-utils';
import type { ImageProps } from 'ant-design-vue';
import type { AnchorHTMLAttributes } from 'vue';
interface ProHelpDataSourceContentType {
    h1: string;
    h2: string;
    link: {
        content: string;
    } & AnchorHTMLAttributes;
    inlineLink: {
        content: string;
    } & AnchorHTMLAttributes;
    navigationSwitch: {
        selectKey: string;
        content: string;
    };
    text: string;
    image: ImageProps;
    html: {
        className: string;
        content: string;
    };
}
type ProHelpDataSourceChildrenType = Extract<keyof ProHelpDataSourceContentType, any>;
type ProHelpDataSourceContentProps<ValueTypeMap, ValueType> = ValueType extends ProHelpDataSourceChildrenType ? ProHelpDataSourceContentType[ValueType] : ValueType extends keyof ValueTypeMap ? ValueTypeMap[ValueType] : ProHelpDataSourceContentType[ProHelpDataSourceChildrenType];
export interface ProHelpDataSourceChildren<ValueTypeMap = {
    text: string;
}> {
    valueType: ValueTypeMap extends Map<infer ValueType, any> ? ValueType : keyof ValueTypeMap | ProHelpDataSourceChildrenType;
    valueChildren: ProHelpDataSourceContentProps<ValueTypeMap, keyof ValueTypeMap | ProHelpDataSourceChildrenType>;
}
export interface ProHelpDataSource<ValueType = 'text'> {
    key: string;
    title: string;
    infiniteScrollFull?: boolean;
    children: Array<{
        key: string;
        title: string;
        asyncLoad?: boolean;
        children?: Array<ProHelpDataSourceChildren<ValueType>>;
    }>;
}
interface ProHelpProvideProps {
    dataSource?: Array<ProHelpDataSource<any>>;
    valueTypeMap?: Map<string, (item: ProHelpDataSourceChildren<any>, index: number) => VueNode>;
    onLoadContext?: (key: Key, context: ProHelpDataSource<any>['children'][number]) => Promise<Array<ProHelpDataSourceChildren<any>>>;
}
export declare const ProHelpContext: {
    Provider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        value: {
            type: import("vue").PropType<ProHelpProvideProps>;
            required: true;
        };
    }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        value: {
            type: import("vue").PropType<ProHelpProvideProps>;
            required: true;
        };
    }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    useContext: () => ProHelpProvideProps;
};
export {};
