# mod.ts
/**
 * A is a class
 *
 * @example
 * ```ts
 * const bar = "foo";
 * console.log(bar);
 * ```
 */
export class A {}
/**
 * B is an interface
 *
 * @example
 * ```ts
 * # const bar = "foo";
 * console.log(bar);
 * ```
 */
export interface B {}
/**
 * C is a function
 *
 * @example
 * ```ts
 * class Bar {
 *   #foo = "something";
 * }
 * console.log(bar);
 * ```
 */
export function C() {}
/**
 * D
 *
 * @example
 * ```ts
 * const bar = "foo";
 * # console.log(bar); ```
 */
export interface D {}

# output.txt
Defined in file:///mod.ts:31:1

function C(): void
  C is a function

  @example
      ```ts
      class Bar {
        #foo = "something";
      }
      console.log(bar);
      ```


Defined in file:///mod.ts:9:1

class A
  A is a class

  @example
      ```ts
      const bar = "foo";
      console.log(bar);
      ```



Defined in file:///mod.ts:19:1

interface B
  B is an interface

  @example
      ```ts
      console.log(bar);
      ```



Defined in file:///mod.ts:40:1

interface D
  D

  @example
      ```ts
      const bar = "foo";
      ```




# output.json
{
  "symbols": [
    {
      "name": "A",
      "declarations": [
        {
          "location": {
            "filename": "file:///mod.ts",
            "line": 9,
            "col": 0,
            "byteIndex": 98
          },
          "declarationKind": "export",
          "jsDoc": {
            "doc": "A is a class\n",
            "tags": [
              {
                "kind": "example",
                "doc": "```ts\nconst bar = \"foo\";\nconsole.log(bar);\n```"
              }
            ]
          },
          "kind": "class",
          "def": {}
        }
      ]
    },
    {
      "name": "B",
      "declarations": [
        {
          "location": {
            "filename": "file:///mod.ts",
            "line": 19,
            "col": 0,
            "byteIndex": 221
          },
          "declarationKind": "export",
          "jsDoc": {
            "doc": "B is an interface\n",
            "tags": [
              {
                "kind": "example",
                "doc": "```ts\nconsole.log(bar);\n```"
              }
            ]
          },
          "kind": "interface",
          "def": {}
        }
      ]
    },
    {
      "name": "C",
      "declarations": [
        {
          "location": {
            "filename": "file:///mod.ts",
            "line": 31,
            "col": 0,
            "byteIndex": 367
          },
          "declarationKind": "export",
          "jsDoc": {
            "doc": "C is a function\n",
            "tags": [
              {
                "kind": "example",
                "doc": "```ts\nclass Bar {\n  #foo = \"something\";\n}\nconsole.log(bar);\n```"
              }
            ]
          },
          "kind": "function",
          "def": {
            "params": [],
            "returnType": {
              "repr": "void",
              "kind": "keyword",
              "value": "void"
            },
            "hasBody": true
          }
        }
      ]
    },
    {
      "name": "D",
      "declarations": [
        {
          "location": {
            "filename": "file:///mod.ts",
            "line": 40,
            "col": 0,
            "byteIndex": 476
          },
          "declarationKind": "export",
          "jsDoc": {
            "doc": "D\n",
            "tags": [
              {
                "kind": "example",
                "doc": "```ts\nconst bar = \"foo\";\n```"
              }
            ]
          },
          "kind": "interface",
          "def": {}
        }
      ]
    }
  ]
}
