import type {
  CSSProperties,
  HTMLAttributes,
  ReactNode,
  Ref,
} from "react";

/** sx 值类型 */
export type SxValue =
  | string
  | { tw?: string; className?: string; css?: CSSProperties; style?: CSSProperties }
  | Record<string, unknown>;

/** Line Props */
export interface LineProps extends Omit<HTMLAttributes<HTMLDivElement>, "style"> {
  /** 分隔线间距尺寸 */
  size?: "small" | "medium" | "large" | "huge";
  /** 样式扩展 */
  sx?: SxValue;
  /** 行内样式 */
  style?: CSSProperties;
  /** 额外 CSS 类名 */
  className?: string;
  /** 分隔线中间文本，不传则显示纯线 */
  children?: ReactNode;
  /** ref 转发 */
  ref?: Ref<HTMLDivElement>;
}

declare const Line: React.ForwardRefExoticComponent<
  LineProps & React.RefAttributes<HTMLDivElement>
>;
export default Line;
