import type { ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue';
import type { ValidateMessages } from '../form/interface';
import type { TransformCellTextProps } from '../table/interface';
import type { Locale } from '../locale-provider';
import type { DerivativeFunc } from '../_util/cssinjs';
import type { AliasToken, SeedToken } from '../theme/internal';
import type { MapToken, OverrideToken } from '../theme/interface';
import type { VueNode } from '../_util/type';
import type { InputProps, TextAreaProps } from '../input';
import type { PaginationProps } from '../pagination';
import type { FormProps } from '../form';
import type { SelectProps } from '../select';
import type { CascaderProps } from '../cascader';
import type { DatePickerProps, RangePickerProps } from '../date-picker';
import type { TreeSelectProps } from '../tree-select';
import type { InputNumberProps } from '../input-number';
import type { MentionsProps } from '../mentions';
import type { TimePickerProps } from '../time-picker';
import type { CardProps } from '../card';
import type { TableProps } from '../table';
import type { TooltipProps } from '../tooltip';
import type { PopoverProps } from '../popover';
import type { PopconfirmProps } from '../popconfirm';
import type { ModalProps } from '../modal';
import type { DrawerProps } from '../drawer';
import type { ImageProps } from '../image';
export declare const Variants: readonly ["outlined", "borderless", "filled", "underlined"];
export type Variant = (typeof Variants)[number];
export declare const defaultIconPrefixCls = "anticon";
type GlobalFormCOntextProps = {
    validateMessages?: Ref<ValidateMessages>;
};
export type DirectionType = 'ltr' | 'rtl' | undefined;
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 interface CSPConfig {
    nonce?: string;
}
export interface Theme {
    primaryColor?: string;
    infoColor?: string;
    successColor?: string;
    processingColor?: string;
    errorColor?: string;
    warningColor?: string;
}
export type SizeType = 'small' | 'middle' | 'large' | undefined;
export type Direction = 'ltr' | 'rtl';
export type MappingAlgorithm = DerivativeFunc<SeedToken, MapToken>;
export type InputConfig = Pick<InputProps, 'autocomplete' | 'variant'>;
export type PaginationConfig = Pick<PaginationProps, 'showSizeChanger'>;
export type FormConfig = Pick<FormProps, 'validateMessages' | 'requiredMark' | 'colon'>;
export type SelectConfig = Pick<SelectProps, 'showSearch' | 'variant' | 'allowClear'>;
export type CascaderConfig = Pick<CascaderProps, 'variant'>;
export type DatePickerConfig = Pick<DatePickerProps, 'variant'>;
export type TreeSelectConfig = Pick<TreeSelectProps, 'variant'>;
export type TextAreaConfig = Pick<TextAreaProps, 'variant'>;
export type InputNumberConfig = Pick<InputNumberProps, 'variant'>;
export type RangePickerConfig = Pick<RangePickerProps, 'variant'>;
export type MentionsConfig = Pick<MentionsProps, 'variant'>;
export type TimePickerConfig = Pick<TimePickerProps, 'variant'>;
export type CardConfig = Pick<CardProps, 'variant'>;
export type TableConfig = Pick<TableProps, 'rowKey'>;
export type TooltipConfig = Pick<TooltipProps, 'arrow'>;
export type PopoverConfig = Pick<PopoverProps, 'arrow'>;
export type PopconfirmConfig = Pick<PopconfirmProps, 'arrow'>;
export type ModalConfig = Pick<ModalProps, 'mask'>;
export type DrawerConfig = Pick<DrawerProps, 'mask'>;
export type ImageConfig = Pick<ImageProps, 'preview'>;
export interface ThemeConfig {
    token?: Partial<AliasToken>;
    components?: OverrideToken;
    algorithm?: MappingAlgorithm | MappingAlgorithm[];
    hashed?: boolean;
    inherit?: boolean;
}
export type ConfigComponentProps = {
    input?: ComputedRef<InputConfig>;
    pagination?: ComputedRef<PaginationConfig>;
    form?: ComputedRef<FormConfig>;
    select?: ComputedRef<SelectConfig>;
    cascader?: ComputedRef<CascaderConfig>;
    datePicker?: ComputedRef<DatePickerConfig>;
    rangePicker?: ComputedRef<RangePickerConfig>;
    treeSelect?: ComputedRef<TreeSelectConfig>;
    textArea?: ComputedRef<TextAreaConfig>;
    inputNumber?: ComputedRef<InputNumberConfig>;
    mentions?: ComputedRef<MentionsConfig>;
    timePicker?: ComputedRef<TimePickerConfig>;
    card?: ComputedRef<CardConfig>;
    table?: ComputedRef<TableConfig>;
    tooltip?: ComputedRef<TooltipConfig>;
    popover?: ComputedRef<PopoverConfig>;
    popconfirm?: ComputedRef<PopconfirmConfig>;
    modal?: ComputedRef<ModalConfig>;
    drawer?: ComputedRef<DrawerConfig>;
    image?: ComputedRef<ImageConfig>;
};
export declare const configComponentProps: () => {
    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;
    };
};
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;
    };
    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<"rtl" | "ltr">;
        default: string;
    };
    space: {
        type: PropType<{
            size?: SizeType | number;
        }>;
        default: {
            size?: SizeType | 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;
    };
};
export type ConfigProviderProps = Partial<ExtractPropTypes<ReturnType<typeof configProviderProps>>>;
export interface ConfigProviderInnerProps extends ConfigComponentProps {
    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>;
    variant?: ComputedRef<Variant>;
    pageHeader?: ComputedRef<{
        ghost?: boolean;
    }>;
    componentSize?: ComputedRef<SizeType>;
    componentDisabled?: ComputedRef<boolean>;
    transformCellText?: ComputedRef<(tableProps: TransformCellTextProps) => any>;
    wave?: ComputedRef<{
        disabled?: boolean;
    }>;
    flex?: ComputedRef<{
        vertical?: boolean;
    }>;
}
export declare const configProviderKey: InjectionKey<ConfigProviderInnerProps>;
export declare const defaultConfigProvider: ConfigProviderInnerProps;
export declare const useConfigContextInject: () => ConfigProviderInnerProps;
export declare const useConfigContextProvider: (props: ConfigProviderInnerProps) => void;
export {};
