import { CSSProperties, ExtractPropTypes, HTMLAttributes, InjectionKey, Plugin, PropType, Ref, VNode, DefineComponent, RendererNode, RendererElement, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { Breakpoint } from '../_util/responsiveObserve';
import { CustomSlotsType, VueNode } from '../_util/type';
import { VueTypeValidableDef } from 'vue-types';
export declare const DescriptionsItemProps: {
    prefixCls: StringConstructor;
    label: VueTypeValidableDef<any>;
    span: NumberConstructor;
};
declare const descriptionsItemProp: () => {
    prefixCls: StringConstructor;
    label: VueTypeValidableDef<any>;
    labelStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    contentStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    span: {
        type: NumberConstructor;
        default: number;
    };
};
export type DescriptionsItemProp = Partial<ExtractPropTypes<ReturnType<typeof descriptionsItemProp>>>;
export declare const DescriptionsItem: DefineComponent<ExtractPropTypes<{
    prefixCls: StringConstructor;
    label: VueTypeValidableDef<any>;
    labelStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    contentStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    span: {
        type: NumberConstructor;
        default: number;
    };
}>, () => VNode< RendererNode, RendererElement, {
    [key: string]: any;
}>[] | undefined, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
    prefixCls: StringConstructor;
    label: VueTypeValidableDef<any>;
    labelStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    contentStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    span: {
        type: NumberConstructor;
        default: number;
    };
}>> & Readonly<{}>, {
    span: number;
    labelStyle: CSSProperties;
    contentStyle: CSSProperties;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export declare const descriptionsProps: () => {
    prefixCls: StringConstructor;
    bordered: {
        type: BooleanConstructor;
        default: undefined;
    };
    size: {
        type: PropType<"default" | "middle" | "small">;
        default: string;
    };
    title: VueTypeValidableDef<any>;
    extra: VueTypeValidableDef<any>;
    column: {
        type: PropType<number | Partial<Record<Breakpoint, number>>>;
        default: () => number | Partial<Record<Breakpoint, number>>;
    };
    layout: PropType<"horizontal" | "vertical">;
    colon: {
        type: BooleanConstructor;
        default: undefined;
    };
    labelStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    contentStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
};
export type DescriptionsProps = HTMLAttributes & Partial<ExtractPropTypes<ReturnType<typeof descriptionsProps>>>;
export interface DescriptionsContextProp {
    labelStyle?: Ref<CSSProperties>;
    contentStyle?: Ref<CSSProperties>;
}
export declare const descriptionsContext: InjectionKey<DescriptionsContextProp>;
declare const Descriptions: DefineComponent<ExtractPropTypes<{
    prefixCls: StringConstructor;
    bordered: {
        type: BooleanConstructor;
        default: undefined;
    };
    size: {
        type: PropType<"default" | "middle" | "small">;
        default: string;
    };
    title: VueTypeValidableDef<any>;
    extra: VueTypeValidableDef<any>;
    column: {
        type: PropType<number | Partial<Record<Breakpoint, number>>>;
        default: () => number | Partial<Record<Breakpoint, number>>;
    };
    layout: PropType<"horizontal" | "vertical">;
    colon: {
        type: BooleanConstructor;
        default: undefined;
    };
    labelStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    contentStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
    prefixCls: StringConstructor;
    bordered: {
        type: BooleanConstructor;
        default: undefined;
    };
    size: {
        type: PropType<"default" | "middle" | "small">;
        default: string;
    };
    title: VueTypeValidableDef<any>;
    extra: VueTypeValidableDef<any>;
    column: {
        type: PropType<number | Partial<Record<Breakpoint, number>>>;
        default: () => number | Partial<Record<Breakpoint, number>>;
    };
    layout: PropType<"horizontal" | "vertical">;
    colon: {
        type: BooleanConstructor;
        default: undefined;
    };
    labelStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    contentStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
}>> & Readonly<{}>, {
    size: "small" | "default" | "middle";
    column: number | Partial<Record<Breakpoint, number>>;
    bordered: boolean;
    colon: boolean;
    labelStyle: CSSProperties;
    contentStyle: CSSProperties;
}, CustomSlotsType<{
    title?: any;
    extra?: any;
    default?: any;
}>, {}, {}, string, ComponentProvideOptions, true, {}, any>;
declare const _default: typeof Descriptions & Plugin & {
    readonly Item: typeof DescriptionsItem;
};
export default _default;
