import { MaybeRef, Plugin, DefineComponent, ExtractPropTypes, PropType, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { ValidateMessages } from '../form/interface';
import { Locale } from '../locale-provider';
import { ConfigProviderProps, Theme, defaultIconPrefixCls, CSPConfig, SizeType, ThemeConfig } from './context';
import { RenderEmptyHandler } from './renderEmpty';
import { TransformCellTextProps } from '../table/interface';
import { RequiredMark } from '../form/Form';
export type { ConfigProviderProps, CSPConfig, Direction, DirectionType, SizeType, Theme, } from './context';
export declare const defaultPrefixCls = "ant";
export { defaultIconPrefixCls };
declare function getGlobalIconPrefixCls(): string;
export declare const globalConfigForApi: ConfigProviderProps & {
    getRootPrefixCls?: (rootPrefixCls?: string, customizePrefixCls?: string) => string;
};
export declare const configConsumerProps: string[];
interface GlobalConfigProviderProps {
    prefixCls?: MaybeRef<ConfigProviderProps['prefixCls']>;
    iconPrefixCls?: MaybeRef<ConfigProviderProps['iconPrefixCls']>;
    getPopupContainer?: ConfigProviderProps['getPopupContainer'];
}
declare const setGlobalConfig: (params: GlobalConfigProviderProps & {
    theme?: Theme;
}) => void;
export declare const globalConfig: () => {
    getPrefixCls: (suffixCls?: string, customizePrefixCls?: string) => string;
    getIconPrefixCls: typeof getGlobalIconPrefixCls;
    getRootPrefixCls: () => string;
};
declare const ConfigProvider: DefineComponent<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<RenderEmptyHandler>;
    };
    transformCellText: {
        type: PropType<(tableProps: TransformCellTextProps) => any>;
    };
    csp: {
        type: PropType<CSPConfig>;
        default: CSPConfig;
    };
    input: {
        type: PropType<{
            autocomplete?: string;
        }>;
        default: {
            autocomplete?: string;
        };
    };
    autoInsertSpaceInButton: {
        type: BooleanConstructor;
        default: undefined;
    };
    locale: {
        type: PropType<Locale>;
        default: Locale;
    };
    pageHeader: {
        type: PropType<{
            ghost?: boolean;
        }>;
        default: {
            ghost?: boolean;
        };
    };
    componentSize: {
        type: PropType<SizeType>;
    };
    componentDisabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    direction: {
        type: PropType<"ltr" | "rtl">;
        default: string;
    };
    space: {
        type: PropType<{
            size?: SizeType | number;
        }>;
        default: {
            size?: SizeType | number;
        };
    };
    virtual: {
        type: BooleanConstructor;
        default: undefined;
    };
    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;
        };
    };
    wave: {
        type: PropType<{
            disabled?: boolean;
        }>;
        default: {
            disabled?: boolean;
        };
    };
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< 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<RenderEmptyHandler>;
    };
    transformCellText: {
        type: PropType<(tableProps: TransformCellTextProps) => any>;
    };
    csp: {
        type: PropType<CSPConfig>;
        default: CSPConfig;
    };
    input: {
        type: PropType<{
            autocomplete?: string;
        }>;
        default: {
            autocomplete?: string;
        };
    };
    autoInsertSpaceInButton: {
        type: BooleanConstructor;
        default: undefined;
    };
    locale: {
        type: PropType<Locale>;
        default: Locale;
    };
    pageHeader: {
        type: PropType<{
            ghost?: boolean;
        }>;
        default: {
            ghost?: boolean;
        };
    };
    componentSize: {
        type: PropType<SizeType>;
    };
    componentDisabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    direction: {
        type: PropType<"ltr" | "rtl">;
        default: string;
    };
    space: {
        type: PropType<{
            size?: SizeType | number;
        }>;
        default: {
            size?: SizeType | number;
        };
    };
    virtual: {
        type: BooleanConstructor;
        default: undefined;
    };
    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;
        };
    };
    wave: {
        type: PropType<{
            disabled?: boolean;
        }>;
        default: {
            disabled?: boolean;
        };
    };
}>> & Readonly<{}>, {
    form: {
        validateMessages?: ValidateMessages;
        requiredMark?: RequiredMark;
        colon?: boolean;
    };
    input: {
        autocomplete?: string;
    };
    select: {
        showSearch?: boolean;
    };
    csp: CSPConfig;
    direction: "ltr" | "rtl";
    space: {
        size?: SizeType | number;
    };
    locale: Locale;
    theme: ThemeConfig;
    virtual: boolean;
    dropdownMatchSelectWidth: number | boolean;
    wave: {
        disabled?: boolean;
    };
    autoInsertSpaceInButton: boolean;
    pagination: {
        showSizeChanger?: boolean;
    };
    pageHeader: {
        ghost?: boolean;
    };
    componentDisabled: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
declare const _default: typeof ConfigProvider & Plugin & {
    readonly config: typeof setGlobalConfig;
};
export default _default;
