import { ReactElement, ReactNode, ElementType, ComponentPropsWithRef } from 'react'; import { Obj, ResponsiveProp, Size } from '../../types'; import { GridProps } from '../grid'; import { DescriptionItem, DescriptionItemProps } from './descriptionItem'; export type DescriptionsSharedProps = { size?: Size; /** 标签的宽度,grid模式有效 */ labelWidth?: string | number; colon?: ReactNode; /** 标签的位置,table模式下仅支持`left`与`top`, 默认为`left` */ labelPlacement?: 'top' | 'bottom' | 'left' | 'right'; /** 是否禁用margin,{@link DescriptionsProps.variant}为grid有效 */ disableMargin?: boolean; /** 是否禁用padding,{@link DescriptionsProps.variant}为table有效 */ disablePadding?: boolean; }; interface DescriptionsBaseProps extends DescriptionsSharedProps { items?: (DescriptionItemProps & Obj)[]; /** * @private 用于渲染item的组件,通常为内部使用 * 默认为`DescriptionItem` {@link DescriptionItem} */ itemComponent?: ElementType; } interface DescriptionsGridProps extends DescriptionsBaseProps, GridProps { variant?: 'grid'; } interface DescriptionsTableProps extends DescriptionsBaseProps, ComponentPropsWithRef<'table'> { variant: 'table'; columnCount?: ResponsiveProp; } export type DescriptionsProps = DescriptionsGridProps | DescriptionsTableProps; interface DescriptionsContext extends DescriptionsSharedProps { variant?: 'grid' | 'table'; } export declare function useDescriptionsContext(): DescriptionsContext; declare const DescriptionsContext: import("react").Context; export declare const Descriptions: { (props: DescriptionsProps): ReactElement; Item: typeof DescriptionItem; }; export {};