{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.18.7",
    "schemaVersion": 1004,
    "oldestForwardsCompatibleVersion": 1001,
    "tsdocConfig": {
      "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
      "noStandardTags": true,
      "tagDefinitions": [
        {
          "tagName": "@alpha",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@beta",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@defaultValue",
          "syntaxKind": "block"
        },
        {
          "tagName": "@decorator",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@deprecated",
          "syntaxKind": "block"
        },
        {
          "tagName": "@eventProperty",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@example",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@experimental",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@inheritDoc",
          "syntaxKind": "inline"
        },
        {
          "tagName": "@internal",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@label",
          "syntaxKind": "inline"
        },
        {
          "tagName": "@link",
          "syntaxKind": "inline",
          "allowMultiple": true
        },
        {
          "tagName": "@override",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@packageDocumentation",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@param",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@privateRemarks",
          "syntaxKind": "block"
        },
        {
          "tagName": "@public",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@readonly",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@remarks",
          "syntaxKind": "block"
        },
        {
          "tagName": "@returns",
          "syntaxKind": "block"
        },
        {
          "tagName": "@sealed",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@see",
          "syntaxKind": "block"
        },
        {
          "tagName": "@throws",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@typeParam",
          "syntaxKind": "block",
          "allowMultiple": true
        },
        {
          "tagName": "@virtual",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@betaDocumentation",
          "syntaxKind": "modifier"
        },
        {
          "tagName": "@internalRemarks",
          "syntaxKind": "block"
        },
        {
          "tagName": "@preapproved",
          "syntaxKind": "modifier"
        }
      ],
      "supportForTags": {
        "@alpha": true,
        "@beta": true,
        "@defaultValue": true,
        "@decorator": true,
        "@deprecated": true,
        "@eventProperty": true,
        "@example": true,
        "@experimental": true,
        "@inheritDoc": true,
        "@internal": true,
        "@label": true,
        "@link": true,
        "@override": true,
        "@packageDocumentation": true,
        "@param": true,
        "@privateRemarks": true,
        "@public": true,
        "@readonly": true,
        "@remarks": true,
        "@returns": true,
        "@sealed": true,
        "@see": true,
        "@throws": true,
        "@typeParam": true,
        "@virtual": true,
        "@betaDocumentation": true,
        "@internalRemarks": true,
        "@preapproved": true
      }
    }
  },
  "kind": "Package",
  "canonicalReference": "tkt!",
  "docComment": "/**\n * An opinionated toolkit for building Node.js applications. Comes with good IntelliSense support thanks to TypeScript.\n *\n * @remarks\n *\n * For usage guide please check out the main documentation page at {@link https://docs.dt.in.th/tkt/}\n *\n * @packageDocumentation\n */\n",
  "name": "tkt",
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "tkt!",
      "name": "",
      "members": [
        {
          "kind": "Function",
          "canonicalReference": "tkt!cli:function(1)",
          "docComment": "/**\n * Creates a command-line interface.\n *\n * @param globalOptions - The global options which apply to all commands. See {@link https://github.com/yargs/yargs/blob/master/docs/api.md#optionskey-opt | yargs API} for details.\n *\n * @returns An {@link ICli} instance.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function cli<GlobalOptions extends "
            },
            {
              "kind": "Content",
              "text": "{}"
            },
            {
              "kind": "Content",
              "text": ">(globalOptions?: "
            },
            {
              "kind": "Content",
              "text": "GlobalOptions"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ICli",
              "canonicalReference": "tkt!ICli:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "yargs.Argv",
              "canonicalReference": "@types/yargs!~yargs.Argv:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "yargs.Omit",
              "canonicalReference": "@types/yargs!~yargs.Omit:type"
            },
            {
              "kind": "Content",
              "text": "<{}, keyof GlobalOptions> & "
            },
            {
              "kind": "Reference",
              "text": "yargs.InferredOptionTypes",
              "canonicalReference": "@types/yargs!~yargs.InferredOptionTypes:type"
            },
            {
              "kind": "Content",
              "text": "<GlobalOptions>>>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 13
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "globalOptions",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "GlobalOptions",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "cli"
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "tkt!CliArguments:type",
          "docComment": "/**\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type CliArguments<O extends "
            },
            {
              "kind": "Content",
              "text": "{\n    [key: string]: "
            },
            {
              "kind": "Reference",
              "text": "yargs.Options",
              "canonicalReference": "@types/yargs!~yargs.Options:interface"
            },
            {
              "kind": "Content",
              "text": ";\n}"
            },
            {
              "kind": "Content",
              "text": "> = "
            },
            {
              "kind": "Reference",
              "text": "yargs.Arguments",
              "canonicalReference": "@types/yargs!~yargs.Arguments:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "yargs.InferredOptionTypes",
              "canonicalReference": "@types/yargs!~yargs.InferredOptionTypes:type"
            },
            {
              "kind": "Content",
              "text": "<O>>"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "CliArguments",
          "typeParameters": [
            {
              "typeParameterName": "O",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 4
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "typeTokenRange": {
            "startIndex": 5,
            "endIndex": 9
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "tkt!ICli:interface",
          "docComment": "/**\n * A command-line interface created by the {@link cli} function.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface ICli<GlobalOptions> "
            }
          ],
          "releaseTag": "Public",
          "typeParameters": [
            {
              "typeParameterName": "GlobalOptions",
              "constraintTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "ICli",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "tkt!ICli#command:member(1)",
              "docComment": "/**\n * Register a command.\n *\n * @param command - The command string. Use `$0` for default command. Add `<arg>` for required positional parameter. Add `[arg]` for optional positional parameter. See {@link https://github.com/yargs/yargs/blob/master/docs/advanced.md#commands | yargs Command API documentation} for details.\n *\n * @param description - The command description, the text to show in `--help` menu.\n *\n * @param options - The options accepted by the command. See {@link https://github.com/yargs/yargs/blob/master/docs/api.md#optionskey-opt | yargs API documentation} for details.\n *\n * @param handler - The command handler. It may return a promise. If the promise is rejected, the CLI will exit with the help text and a non-zero code.\n *\n * @returns An instance of {@link ICli} for chaining.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "command<LocalOptions extends "
                },
                {
                  "kind": "Content",
                  "text": "{\n        [key: string]: "
                },
                {
                  "kind": "Reference",
                  "text": "yargs.Options",
                  "canonicalReference": "@types/yargs!~yargs.Options:interface"
                },
                {
                  "kind": "Content",
                  "text": ";\n    }"
                },
                {
                  "kind": "Content",
                  "text": ">(command: "
                },
                {
                  "kind": "Content",
                  "text": "string | "
                },
                {
                  "kind": "Reference",
                  "text": "ReadonlyArray",
                  "canonicalReference": "!ReadonlyArray:interface"
                },
                {
                  "kind": "Content",
                  "text": "<string>"
                },
                {
                  "kind": "Content",
                  "text": ", description: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ", options: "
                },
                {
                  "kind": "Content",
                  "text": "LocalOptions"
                },
                {
                  "kind": "Content",
                  "text": ", handler: "
                },
                {
                  "kind": "Content",
                  "text": "(args: "
                },
                {
                  "kind": "Reference",
                  "text": "CliArguments",
                  "canonicalReference": "tkt!CliArguments:type"
                },
                {
                  "kind": "Content",
                  "text": "<LocalOptions>) => void"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "ICli",
                  "canonicalReference": "tkt!ICli:interface"
                },
                {
                  "kind": "Content",
                  "text": "<GlobalOptions>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 17,
                "endIndex": 19
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "command",
                  "parameterTypeTokenRange": {
                    "startIndex": 5,
                    "endIndex": 8
                  }
                },
                {
                  "parameterName": "description",
                  "parameterTypeTokenRange": {
                    "startIndex": 9,
                    "endIndex": 10
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 11,
                    "endIndex": 12
                  }
                },
                {
                  "parameterName": "handler",
                  "parameterTypeTokenRange": {
                    "startIndex": 13,
                    "endIndex": 16
                  }
                }
              ],
              "typeParameters": [
                {
                  "typeParameterName": "LocalOptions",
                  "constraintTokenRange": {
                    "startIndex": 1,
                    "endIndex": 4
                  },
                  "defaultTypeTokenRange": {
                    "startIndex": 0,
                    "endIndex": 0
                  }
                }
              ],
              "name": "command"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "tkt!ICli#parse:member(1)",
              "docComment": "/**\n * Parses the command-line arguments and invoke the registered command handler.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "parse(): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "parse"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "tkt!ILogger:interface",
          "docComment": "/**\n * A logger instance created by the {@link (logger:function)} function or the {@link ILogger.child} method. See {@link https://github.com/pinojs/pino/blob/master/docs/api.md#logger-instance | Pino’s API} for more information.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface ILogger "
            }
          ],
          "releaseTag": "Public",
          "name": "ILogger",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "tkt!ILogger#child:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "child(name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "ILogger",
                  "canonicalReference": "tkt!ILogger:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "child"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "tkt!ILogger#debug:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "debug(...args: "
                },
                {
                  "kind": "Content",
                  "text": "any[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "args",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "debug"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "tkt!ILogger#error:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "error(...args: "
                },
                {
                  "kind": "Content",
                  "text": "any[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "args",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "error"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "tkt!ILogger#info:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "info(...args: "
                },
                {
                  "kind": "Content",
                  "text": "any[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "args",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "info"
            },
            {
              "kind": "MethodSignature",
              "canonicalReference": "tkt!ILogger#warn:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "warn(...args: "
                },
                {
                  "kind": "Content",
                  "text": "any[]"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isOptional": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "args",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "warn"
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "tkt!invariant:function(1)",
          "docComment": "/**\n * Asserts state which your program assumes to be true. If it is false, an error is thrown.\n *\n * @param value - The value to assert.\n *\n * @param message - The message format string to display on error.\n *\n * @param extra - Optional values used to populate the message format string.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function invariant(value: "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": ", message: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", ...extra: "
            },
            {
              "kind": "Content",
              "text": "any[]"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "asserts "
            },
            {
              "kind": "Reference",
              "text": "value",
              "canonicalReference": "tkt!~value"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 9
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "value",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "message",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            },
            {
              "parameterName": "extra",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "invariant"
        },
        {
          "kind": "Function",
          "canonicalReference": "tkt!logger:function(1)",
          "docComment": "/**\n * Create an {@link ILogger} instance with a given name.\n *\n * @param name - The name to use for logging.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function logger(name: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ILogger",
              "canonicalReference": "tkt!ILogger:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "name",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "logger"
        },
        {
          "kind": "Namespace",
          "canonicalReference": "tkt!logger:namespace",
          "docComment": "/**\n * Modify the logger’s behavior.\n *\n * @public\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace logger "
            }
          ],
          "releaseTag": "Public",
          "name": "logger",
          "members": [
            {
              "kind": "Function",
              "canonicalReference": "tkt!logger.forceJSON:function(1)",
              "docComment": "/**\n * Force the logger to write JSON output.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "function forceJSON(): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "forceJSON"
            },
            {
              "kind": "Function",
              "canonicalReference": "tkt!logger.forcePretty:function(1)",
              "docComment": "/**\n * Force the logger to write pretty-printed output rather than JSON.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "function forcePretty(): "
                },
                {
                  "kind": "Content",
                  "text": "void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [],
              "name": "forcePretty"
            }
          ]
        }
      ]
    }
  ]
}
