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

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

/** Mark 高亮标记颜色预设 */
export type MarkColor = "default" | "primary" | "success" | "warning" | "danger";

/** Mark Props */
export interface MarkProps extends Omit<HTMLAttributes<HTMLElement>, "style"> {
  /** 高亮颜色预设 */
  color?: MarkColor;
  /** 是否启用美化模式（圆角+内边距） */
  beauty?: boolean;
  /** 样式扩展 */
  sx?: SxValue;
  /** 行内样式 */
  style?: CSSProperties;
  /** 额外 CSS 类名 */
  className?: string;
  /** 标记内容 */
  children?: ReactNode;
  /** ref 转发 */
  ref?: Ref<HTMLElement>;
}

declare const Mark: React.ForwardRefExoticComponent<
  MarkProps & React.RefAttributes<HTMLElement>
>;
export default Mark;
