import { ExtractPropTypes, PropType } from 'vue';
import { ApFilePreviewProps } from '../business/ap-file-preview/interface';
import { AgGridProps } from '../ag-grid';
import { ApGridProps } from '../ap-grid';
import { ApExportGroupListItem, ApImageProps, ApTitleProps, ViewCacheOption } from '../business';
import { ApViewProps } from '../business/ap-view/interface';
import { FullToken } from '../design-token/interface';
import { LocaleType } from '../locale/interface';
import { RecursivePartial } from '../type';
import { ApiType, ApUploadConfig, ApDescriptionsConfig, ValueTypeRenderConfig, downloadCenterTriggerConfig, SearchFormGlobalConfig, UiModeType } from './constants';
import { default as __DTS_DEFAULT_0__ } from '@aplus-frontend/antdv/es/config-provider/renderEmpty';
import { TransformCellTextProps } from '@aplus-frontend/antdv/es/table/interface';
import { CSPConfig } from '@aplus-frontend/antdv/es/config-provider';
import { Locale } from '@aplus-frontend/antdv/es/locale';
import { ButtonSize } from '@aplus-frontend/antdv/es/button';
import { ThemeConfig, InputConfig, PaginationConfig, FormConfig, SelectConfig, CascaderConfig, DatePickerConfig, RangePickerConfig, TreeSelectConfig, TextAreaConfig, InputNumberConfig, MentionsConfig, TimePickerConfig, CardConfig, TableConfig, TooltipConfig, PopoverConfig, PopconfirmConfig, ModalConfig, DrawerConfig, ImageConfig } from '@aplus-frontend/antdv/es/config-provider/context';
type ApGridConfig = Pick<ApGridProps, 'rowSelection'>;
type AgGridConfig = Pick<AgGridProps, 'rowSelection' | 'onModelUpdated'>;
type ApProCardConfig = {
    uiMode?: UiModeType;
};
type ApImageConfig = Pick<ApImageProps, 'uiMode'>;
type ApTitleConfig = Pick<ApTitleProps, 'uiMode'>;
type ApFilePreviewConfig = Pick<ApFilePreviewProps, 'parserPlugin'>;
type ApViewConfig = Pick<ApViewProps, 'apViewQuerySync'>;
type ApExportGroupConfig = Pick<ApExportGroupListItem, 'dateValidate' | 'exportField' | 'handleExported'> & {
    hasPermission?: any;
};
export declare const configProviderProps: () => {
    iconPrefixCls: StringConstructor;
    getTargetContainer: {
        type: PropType<() => HTMLElement | Window>;
    };
    getPopupContainer: {
        type: PropType<(triggerNode?: HTMLElement) => HTMLElement>;
    };
    prefixCls: StringConstructor;
    getPrefixCls: {
        type: PropType<(suffixCls?: string, customizePrefixCls?: string) => string>;
    };
    renderEmpty: {
        type: PropType< __DTS_DEFAULT_0__>;
    };
    transformCellText: {
        type: PropType<(tableProps: TransformCellTextProps) => any>;
    };
    csp: {
        type: PropType< CSPConfig>;
        default: CSPConfig;
    };
    autoInsertSpaceInButton: {
        type: BooleanConstructor;
        default: any;
    };
    locale: {
        type: PropType< Locale>;
        default: Locale;
    };
    pageHeader: {
        type: PropType<{
            ghost?: boolean;
        }>;
        default: {
            ghost?: boolean;
        };
    };
    componentSize: {
        type: PropType< ButtonSize>;
    };
    componentDisabled: {
        type: BooleanConstructor;
        default: any;
    };
    direction: {
        type: PropType<"rtl" | "ltr">;
        default: string;
    };
    space: {
        type: PropType<{
            size?: ButtonSize | number;
        }>;
        default: {
            size?: ButtonSize | number;
        };
    };
    virtual: {
        type: BooleanConstructor;
        default: any;
    };
    variant: {
        type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
    };
    dropdownMatchSelectWidth: {
        type: (BooleanConstructor | NumberConstructor)[];
        default: boolean;
    };
    theme: {
        type: PropType< ThemeConfig>;
        default: ThemeConfig;
    };
    wave: {
        type: PropType<{
            disabled?: boolean;
        }>;
        default: {
            disabled?: boolean;
        };
    };
    input: {
        type: PropType< InputConfig>;
        default: InputConfig;
    };
    pagination: {
        type: PropType< PaginationConfig>;
        default: PaginationConfig;
    };
    form: {
        type: PropType< FormConfig>;
        default: FormConfig;
    };
    select: {
        type: PropType< SelectConfig>;
        default: SelectConfig;
    };
    cascader: {
        type: PropType< CascaderConfig>;
        default: CascaderConfig;
    };
    datePicker: {
        type: PropType< DatePickerConfig>;
        default: DatePickerConfig;
    };
    rangePicker: {
        type: PropType< RangePickerConfig>;
        default: RangePickerConfig;
    };
    treeSelect: {
        type: PropType< TreeSelectConfig>;
        default: TreeSelectConfig;
    };
    textArea: {
        type: PropType< TextAreaConfig>;
        default: TextAreaConfig;
    };
    inputNumber: {
        type: PropType< InputNumberConfig>;
        default: InputNumberConfig;
    };
    mentions: {
        type: PropType< MentionsConfig>;
        default: MentionsConfig;
    };
    timePicker: {
        type: PropType< TimePickerConfig>;
        default: TimePickerConfig;
    };
    card: {
        type: PropType< CardConfig>;
        default: CardConfig;
    };
    table: {
        type: PropType< TableConfig>;
        default: TableConfig;
    };
    tooltip: {
        type: PropType< TooltipConfig>;
        default: TooltipConfig;
    };
    popover: {
        type: PropType< PopoverConfig>;
        default: PopoverConfig;
    };
    popconfirm: {
        type: PropType< PopconfirmConfig>;
        default: PopconfirmConfig;
    };
    modal: {
        type: PropType< ModalConfig>;
        default: ModalConfig;
    };
    drawer: {
        type: PropType< DrawerConfig>;
        default: DrawerConfig;
    };
    image: {
        type: PropType< ImageConfig>;
        default: ImageConfig;
    };
    apGrid: {
        type: PropType<ApGridConfig>;
    };
    agGrid: {
        type: PropType<AgGridConfig>;
    };
    apProCard: {
        type: PropType<ApProCardConfig>;
    };
    apImage: {
        type: PropType<ApImageConfig>;
    };
    apTitle: {
        type: PropType<ApTitleConfig>;
    };
    searchForm: {
        type: PropType<SearchFormGlobalConfig>;
        default: () => {};
    };
    apUpload: {
        type: PropType<ApUploadConfig>;
        default: () => {};
    };
    apDescriptions: {
        type: PropType<ApDescriptionsConfig>;
        default: () => {};
    };
    apFilePreview: {
        type: PropType<ApFilePreviewConfig>;
        default: () => {};
    };
    apExportGroup: {
        type: PropType<ApExportGroupConfig>;
        default: () => {};
    };
    apView: {
        type: PropType<ApViewConfig>;
        default: () => {};
    };
    /**
     * @description aplus-ui的locale
     */
    aplusLocale: {
        type: PropType<LocaleType>;
    };
    /**
     * APlus-UI 自己的token
     */
    aplusToken: {
        type: PropType<RecursivePartial<FullToken>>;
    };
    namespace: {
        type: StringConstructor;
    };
    api: {
        type: PropType<ApiType>;
        default: () => {};
    };
    /**
     * @deprecated 已废弃，请使用各自组件的uiMode属性
     */
    uiMode: {
        type: PropType<UiModeType>;
    };
    valueTypeMap: {
        type: PropType<Record<string, ValueTypeRenderConfig>>;
        default: () => {};
    };
    downloadCenterTriggerConfig: {
        type: PropType<downloadCenterTriggerConfig>;
        default: () => {};
    };
    scrollYDomName: {
        type: StringConstructor;
    };
    viewCacheOption: {
        type: PropType<ViewCacheOption>;
        default: () => {};
    };
};
export type ConfigProviderProps = Partial<ExtractPropTypes<ReturnType<typeof configProviderProps>>>;
export {};
