import { MaybeRef } from '@aplus-frontend/utils';
import { App, Ref, ComputedRef, ExtractPropTypes, PropType } from 'vue';
import { ConfigProviderContext } 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 } from '@aplus-frontend/antdv/es/config-provider/context';
import { ApGridRowSelection, AgGridRowSelection, ViewCacheOption } from '../..';
import { LocaleType } from '../../locale';
import { ApiType, ApUploadConfig, ApDescriptionsConfig, ValueTypeRenderConfig, downloadCenterTriggerConfig, ExportField, SearchFormGlobalConfig } from '..';
export declare const keysOf: <T extends Record<string, any>>(arr: T) => Array<keyof T>;
export declare function useGlobalConfig<K extends keyof ConfigProviderContext, D extends ConfigProviderContext[K]>(key: K, defaultValue?: D): Ref<Exclude<ConfigProviderContext[K], undefined> | D>;
export declare function useGlobalConfig(): Ref<ConfigProviderContext>;
export declare const provideGlobalConfig: (config: MaybeRef<ConfigProviderContext>, app?: App, global?: boolean) => ComputedRef<Partial<Partial< ExtractPropTypes<{
    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;
    };
    apGrid: {
        type: PropType<{
            rowSelection?: true | ApGridRowSelection<any> | undefined;
        }>;
    };
    agGrid: {
        type: PropType<{
            rowSelection?: true | AgGridRowSelection<any> | undefined;
        }>;
    };
    aplusLocale: {
        type: PropType<LocaleType>;
    };
    namespace: {
        type: StringConstructor;
    };
    api: {
        type: PropType<ApiType>;
        default: () => {};
    };
    uiMode: {
        type: PropType<"aplus" | "admin">;
    };
    apUpload: {
        type: PropType<ApUploadConfig>;
        default: () => {};
    };
    apDescriptions: {
        type: PropType<ApDescriptionsConfig>;
        default: () => {};
    };
    valueTypeMap: {
        type: PropType<Record<string, ValueTypeRenderConfig>>;
        default: () => {};
    };
    downloadCenterTriggerConfig: {
        type: PropType<downloadCenterTriggerConfig>;
        default: () => {};
    };
    exportField: {
        type: PropType<ExportField>;
        default: boolean;
    };
    scrollYDomName: {
        type: StringConstructor;
    };
    viewCacheOption: {
        type: PropType<ViewCacheOption>;
        default: () => {};
    };
    searchForm: {
        type: PropType<SearchFormGlobalConfig>;
        default: () => {};
    };
}>>>> | undefined;
