//#region src/index.d.ts
/**
 * A node of italicised text.
 */
type ItalicNode = {
  type: 'italic';
  content: MarkupNode[];
};
/**
 * A node of bold text.
 */
type BoldNode = {
  type: 'bold';
  content: MarkupNode[];
};
/**
 * A code node, containing unstyled text.
 */
type CodeNode = {
  type: 'code';
  content: [string];
};
/**
 * A node of struck-through text.
 */
type StrikeNode = {
  type: 'strike';
  content: MarkupNode[];
};
/**
 * An emoji.
 */
type EmojiNode = {
  type: 'emoji';
  name: string;
};
/**
 * A node that mentions a user.
 */
type MentionNode = {
  type: 'mention';
  mention: string;
  raw: string;
};
/**
 * A node that contains a web link.
 */
type LinkNode = {
  type: 'link';
  text: string;
  href: string;
};
/**
 * Markup node types: either raw text or one of the Node types.
 */
type MarkupNode = string | ItalicNode | BoldNode | CodeNode | StrikeNode | EmojiNode | MentionNode | LinkNode;
/**
 * Options for the parser.
 */
type MarkupOptions = {
  /**
   * The names of the available :emoji: shortcodes.
   */
  emojiNames?: string[];
  /**
   * Usernames that can be mentioned.
   */
  mentions?: string[];
};
/**
 * Parses a chat message into a tree-ish structure.
 */
declare function parse(message: string, options?: MarkupOptions): MarkupNode[];
//#endregion
export { BoldNode, CodeNode, EmojiNode, ItalicNode, LinkNode, MarkupNode, MarkupOptions, MentionNode, StrikeNode, parse as default };