import type { ComputedRef, ExtractPropTypes, InjectionKey, PropType } from 'vue';
import type { Locale, ValidateMessages } from '../locale';
import type { VueNode } from '../_util/type';
import type { TransformCellTextProps } from '../table/interface';
import type { RequiredMark } from '../form/Form';
import type { CSPConfig, GlobalFormCOntextProps, SizeType, ThemeConfig } from './type';
export declare const defaultIconPrefixCls = "anticon";
export declare const GlobalFormContextKey: InjectionKey<GlobalFormCOntextProps>;
export declare const useProvideGlobalForm: (state: GlobalFormCOntextProps) => void;
export declare const useInjectGlobalForm: () => GlobalFormCOntextProps;
export declare const GlobalConfigContextKey: InjectionKey<GlobalFormCOntextProps>;
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<typeof import("./renderEmpty").default>;
    };
    transformCellText: {
        type: PropType<(tableProps: TransformCellTextProps) => any>;
    };
    csp: {
        type: PropType<CSPConfig>;
        default: CSPConfig;
    };
    input: {
        type: PropType<{
            autocomplete?: string;
        }>;
        default: {
            autocomplete?: string;
        };
    };
    autoInsertSpaceInButton: {
        type: BooleanConstructor;
        default: any;
    };
    locale: {
        type: PropType<Locale>;
        default: Locale;
    };
    pageHeader: {
        type: PropType<{
            ghost?: boolean;
        }>;
        default: {
            ghost?: boolean;
        };
    };
    componentSize: {
        type: PropType<SizeType>;
    };
    componentDisabled: {
        type: BooleanConstructor;
        default: any;
    };
    direction: {
        type: PropType<"ltr" | "rtl">;
    };
    space: {
        type: PropType<{
            size?: SizeType | number;
        }>;
        default: {
            size?: SizeType | number;
        };
    };
    virtual: {
        type: BooleanConstructor;
        default: any;
    };
    dropdownMatchSelectWidth: {
        type: (BooleanConstructor | NumberConstructor)[];
        default: boolean;
    };
    form: {
        type: PropType<{
            validateMessages?: ValidateMessages;
            requiredMark?: RequiredMark;
            colon?: boolean;
        }>;
        default: {
            validateMessages?: ValidateMessages;
            requiredMark?: RequiredMark;
            colon?: boolean;
        };
    };
    pagination: {
        type: PropType<{
            showSizeChanger?: boolean;
        }>;
        default: {
            showSizeChanger?: boolean;
        };
    };
    theme: {
        type: PropType<ThemeConfig>;
        default: ThemeConfig;
    };
    select: {
        type: PropType<{
            showSearch?: boolean;
        }>;
        default: {
            showSearch?: boolean;
        };
    };
};
export type ConfigProviderProps = Partial<ExtractPropTypes<ReturnType<typeof configProviderProps>>>;
export interface ConfigProviderInnerProps {
    csp?: ComputedRef<CSPConfig>;
    autoInsertSpaceInButton?: ComputedRef<boolean>;
    locale?: ComputedRef<Locale>;
    direction?: ComputedRef<'ltr' | 'rtl'>;
    space?: ComputedRef<{
        size?: number | SizeType;
    }>;
    virtual?: ComputedRef<boolean>;
    dropdownMatchSelectWidth?: ComputedRef<number | boolean>;
    getPrefixCls: (suffixCls?: string, customizePrefixCls?: string) => string;
    iconPrefixCls: ComputedRef<string>;
    theme?: ComputedRef<ThemeConfig>;
    renderEmpty?: (name?: string) => VueNode;
    getTargetContainer?: ComputedRef<() => HTMLElement | Window>;
    getPopupContainer?: ComputedRef<(triggerNode?: HTMLElement) => HTMLElement>;
    pageHeader?: ComputedRef<{
        ghost?: boolean;
    }>;
    input?: ComputedRef<{
        autocomplete?: string;
    }>;
    pagination?: ComputedRef<{
        showSizeChanger?: boolean;
    }>;
    form?: ComputedRef<{
        validateMessages?: ValidateMessages;
        requiredMark?: RequiredMark;
        colon?: boolean;
    }>;
    select?: ComputedRef<{
        showSearch?: boolean;
    }>;
    componentSize?: ComputedRef<SizeType>;
    componentDisabled?: ComputedRef<boolean>;
    transformCellText?: ComputedRef<(tableProps: TransformCellTextProps) => any>;
}
export declare const configProviderKey: InjectionKey<ConfigProviderInnerProps>;
export declare const defaultConfigProvider: ConfigProviderInnerProps;
export declare const useConfigContextInject: () => ConfigProviderInnerProps;
export declare const useConfigContextProvider: (props: ConfigProviderInnerProps) => void;
