import { PlusFormProps, TableFormRefRow } from 'plus-pro-components';
import { PlusColumn, RecordType, FieldValueType } from 'plus-pro-components';
import { CreateComponentPublicInstance, ExtractPropTypes, PropType, ShallowRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ComponentOptionsBase } from 'vue';
import { default as Descriptions } from './src/index.vue';

export type PlusDescriptionsInstance = InstanceType<typeof Descriptions>;
export type { PlusDescriptionsProps } from './src/index.vue';
export declare const PlusDescriptions: {
    new (...args: any[]): CreateComponentPublicInstance<Readonly< ExtractPropTypes<{
        columns: {
            type: PropType< PlusColumn[]>;
            default: () => never[];
        };
        formProps: {
            type: PropType<PlusFormProps>;
            default: undefined;
        };
        border: {
            type: PropType<boolean>;
            default: boolean;
        };
        data: {
            type: PropType<RecordType>;
            required: true;
            default: () => {};
        };
        title: {
            type: PropType<string>;
            default: string;
        };
        column: {
            type: PropType<number>;
            default: number;
        };
        editable: {
            type: PropType<boolean>;
            default: boolean;
        };
        descriptionsItemProps: {
            type: PropType<RecordType>;
            default: undefined;
        };
    }>> & {
        onFormChange?: ((data: {
            column: PlusColumn;
            index: number;
            prop: string;
            row: RecordType;
            value: FieldValueType;
        }) => any) | undefined;
    }, {
        formRefs: ShallowRef< TableFormRefRow[]>;
        validate: () => Promise<undefined>;
        clearValidate: () => void;
    }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
        formChange: (data: {
            column: PlusColumn;
            index: number;
            prop: string;
            row: RecordType;
            value: FieldValueType;
        }) => void;
    }, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly< ExtractPropTypes<{
        columns: {
            type: PropType< PlusColumn[]>;
            default: () => never[];
        };
        formProps: {
            type: PropType<PlusFormProps>;
            default: undefined;
        };
        border: {
            type: PropType<boolean>;
            default: boolean;
        };
        data: {
            type: PropType<RecordType>;
            required: true;
            default: () => {};
        };
        title: {
            type: PropType<string>;
            default: string;
        };
        column: {
            type: PropType<number>;
            default: number;
        };
        editable: {
            type: PropType<boolean>;
            default: boolean;
        };
        descriptionsItemProps: {
            type: PropType<RecordType>;
            default: undefined;
        };
    }>> & {
        onFormChange?: ((data: {
            column: PlusColumn;
            index: number;
            prop: string;
            row: RecordType;
            value: FieldValueType;
        }) => any) | undefined;
    }, {
        columns: PlusColumn[];
        formProps: PlusFormProps;
        border: boolean;
        data: RecordType;
        title: string;
        column: number;
        editable: boolean;
        descriptionsItemProps: RecordType;
    }, true, {}, {}, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ExtractPropTypes<{
        columns: {
            type: PropType< PlusColumn[]>;
            default: () => never[];
        };
        formProps: {
            type: PropType<PlusFormProps>;
            default: undefined;
        };
        border: {
            type: PropType<boolean>;
            default: boolean;
        };
        data: {
            type: PropType<RecordType>;
            required: true;
            default: () => {};
        };
        title: {
            type: PropType<string>;
            default: string;
        };
        column: {
            type: PropType<number>;
            default: number;
        };
        editable: {
            type: PropType<boolean>;
            default: boolean;
        };
        descriptionsItemProps: {
            type: PropType<RecordType>;
            default: undefined;
        };
    }>> & {
        onFormChange?: ((data: {
            column: PlusColumn;
            index: number;
            prop: string;
            row: RecordType;
            value: FieldValueType;
        }) => any) | undefined;
    }, {
        formRefs: ShallowRef< TableFormRefRow[]>;
        validate: () => Promise<undefined>;
        clearValidate: () => void;
    }, {}, {}, {}, {
        columns: PlusColumn[];
        formProps: PlusFormProps;
        border: boolean;
        data: RecordType;
        title: string;
        column: number;
        editable: boolean;
        descriptionsItemProps: RecordType;
    }>;
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & ComponentOptionsBase<Readonly< ExtractPropTypes<{
    columns: {
        type: PropType< PlusColumn[]>;
        default: () => never[];
    };
    formProps: {
        type: PropType<PlusFormProps>;
        default: undefined;
    };
    border: {
        type: PropType<boolean>;
        default: boolean;
    };
    data: {
        type: PropType<RecordType>;
        required: true;
        default: () => {};
    };
    title: {
        type: PropType<string>;
        default: string;
    };
    column: {
        type: PropType<number>;
        default: number;
    };
    editable: {
        type: PropType<boolean>;
        default: boolean;
    };
    descriptionsItemProps: {
        type: PropType<RecordType>;
        default: undefined;
    };
}>> & {
    onFormChange?: ((data: {
        column: PlusColumn;
        index: number;
        prop: string;
        row: RecordType;
        value: FieldValueType;
    }) => any) | undefined;
}, {
    formRefs: ShallowRef< TableFormRefRow[]>;
    validate: () => Promise<undefined>;
    clearValidate: () => void;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    formChange: (data: {
        column: PlusColumn;
        index: number;
        prop: string;
        row: RecordType;
        value: FieldValueType;
    }) => void;
}, string, {
    columns: PlusColumn[];
    formProps: PlusFormProps;
    border: boolean;
    data: RecordType;
    title: string;
    column: number;
    editable: boolean;
    descriptionsItemProps: RecordType;
}, {}, string, {}> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
    $slots: Partial<Record<string, (_: {
        column: PlusColumn;
        row: RecordType;
        label: string;
    }) => any>> & Partial<Record<string, (_: {
        column: PlusColumn;
        row: RecordType;
        value: any;
    }) => any>> & {
        default?(_: {}): any;
        title?(_: {}): any;
        extra?(_: {}): any;
    };
});
