Options
All
  • Public
  • Public/Protected
  • All
Menu

Class GiveawayClient

Hierarchy

  • KlasaClient
    • GiveawayClient

Index

Constructors

constructor

Properties

application

application: ClientApplication

arguments

arguments: ArgumentStore

commands

commands: CommandStore

console

console: KlasaConsole

events

events: EventStore

extendables

extendables: ExtendableStore

finalizers

finalizers: FinalizerStore

gateways

gateways: GatewayDriver

inhibitors

inhibitors: InhibitorStore

Readonly invite

invite: string

languages

languages: LanguageStore

mentionPrefix

mentionPrefix: RegExp | null

monitors

monitors: MonitorStore

options

options: Required<KlasaClientOptions>

Readonly owners

owners: Set<User>

permissionLevels

permissionLevels: PermissionLevels

pieceStores

pieceStores: Collection<string, any>

providers

providers: ProviderStore

ready

ready: boolean

schedule

schedule: Schedule

serializers

serializers: SerializerStore

settings

settings: Settings | null

tasks

tasks: TaskStore

userBaseDirectory

userBaseDirectory: string

Static basePermissions

basePermissions: Permissions

Static defaultClientSchema

defaultClientSchema: Schema

Static defaultGuildSchema

defaultGuildSchema: Schema

Static defaultPermissionLevels

defaultPermissionLevels: PermissionLevels

Static defaultUserSchema

defaultUserSchema: Schema

Static plugin

plugin: symbol

Methods

login

  • login(token?: undefined | string): Promise<string>
  • Parameters

    • Optional token: undefined | string

    Returns Promise<string>

off

  • off(event: "argumentError", listener: (message: KlasaMessage, command: Command, params: any[], error: string) => void): this
  • off(event: "commandError", listener: (message: KlasaMessage, command: Command, params: any[], error: Error | string) => void): this
  • off(event: "commandInhibited", listener: (message: KlasaMessage, command: Command, response: string | Error) => void): this
  • off(event: "commandRun", listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void): this
  • off(event: "commandSuccess", listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void): this
  • off(event: "commandUnknown", listener: (message: KlasaMessage, command: string, prefix: RegExp, prefixLength: number) => void): this
  • off(event: "finalizerError", listener: (message: KlasaMessage, command: Command, response: KlasaMessage, runTime: Stopwatch, finalizer: Finalizer, error: Error | string) => void): this
  • off(event: "klasaReady", listener: () => void): this
  • off(event: "log", listener: (data: any) => void): this
  • off(event: "monitorError", listener: (message: KlasaMessage, monitor: Monitor, error: Error | string) => void): this
  • off(event: "pieceDisabled", listener: (piece: Piece) => void): this
  • off(event: "pieceEnabled", listener: (piece: Piece) => void): this
  • off(event: "pieceLoaded", listener: (piece: Piece) => void): this
  • off(event: "pieceReloaded", listener: (piece: Piece) => void): this
  • off(event: "pieceUnloaded", listener: (piece: Piece) => void): this
  • off(event: "settingsCreateEntry", listener: (entry: Settings) => void): this
  • off(event: "settingsDeleteEntry", listener: (entry: Settings) => void): this
  • off(event: "settingsUpdateEntry", listener: (oldEntry: Settings, newEntry: Settings, path?: undefined | string) => void): this
  • off(event: "taskError", listener: (scheduledTask: ScheduledTask, task: Task, error: Error) => void): this
  • off(event: "verbose", listener: (data: any) => void): this
  • off(event: "wtf", listener: (failure: Error) => void): this
  • Parameters

    • event: "argumentError"
    • listener: (message: KlasaMessage, command: Command, params: any[], error: string) => void
        • (message: KlasaMessage, command: Command, params: any[], error: string): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • error: string

          Returns void

    Returns this

  • Parameters

    • event: "commandError"
    • listener: (message: KlasaMessage, command: Command, params: any[], error: Error | string) => void
        • (message: KlasaMessage, command: Command, params: any[], error: Error | string): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • error: Error | string

          Returns void

    Returns this

  • Parameters

    • event: "commandInhibited"
    • listener: (message: KlasaMessage, command: Command, response: string | Error) => void
        • (message: KlasaMessage, command: Command, response: string | Error): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • response: string | Error

          Returns void

    Returns this

  • Parameters

    • event: "commandRun"
    • listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void
        • (message: KlasaMessage, command: Command, params: any[], response: any): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • response: any

          Returns void

    Returns this

  • Parameters

    • event: "commandSuccess"
    • listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void
        • (message: KlasaMessage, command: Command, params: any[], response: any): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • response: any

          Returns void

    Returns this

  • Parameters

    • event: "commandUnknown"
    • listener: (message: KlasaMessage, command: string, prefix: RegExp, prefixLength: number) => void
        • (message: KlasaMessage, command: string, prefix: RegExp, prefixLength: number): void
        • Parameters

          • message: KlasaMessage
          • command: string
          • prefix: RegExp
          • prefixLength: number

          Returns void

    Returns this

  • Parameters

    • event: "finalizerError"
    • listener: (message: KlasaMessage, command: Command, response: KlasaMessage, runTime: Stopwatch, finalizer: Finalizer, error: Error | string) => void
        • (message: KlasaMessage, command: Command, response: KlasaMessage, runTime: Stopwatch, finalizer: Finalizer, error: Error | string): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • response: KlasaMessage
          • runTime: Stopwatch
          • finalizer: Finalizer
          • error: Error | string

          Returns void

    Returns this

  • Parameters

    • event: "klasaReady"
    • listener: () => void
        • (): void
        • Returns void

    Returns this

  • Parameters

    • event: "log"
    • listener: (data: any) => void
        • (data: any): void
        • Parameters

          • data: any

          Returns void

    Returns this

  • Parameters

    • event: "monitorError"
    • listener: (message: KlasaMessage, monitor: Monitor, error: Error | string) => void
        • (message: KlasaMessage, monitor: Monitor, error: Error | string): void
        • Parameters

          • message: KlasaMessage
          • monitor: Monitor
          • error: Error | string

          Returns void

    Returns this

  • Parameters

    • event: "pieceDisabled"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceEnabled"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceLoaded"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceReloaded"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceUnloaded"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "settingsCreateEntry"
    • listener: (entry: Settings) => void
        • (entry: Settings): void
        • Parameters

          • entry: Settings

          Returns void

    Returns this

  • Parameters

    • event: "settingsDeleteEntry"
    • listener: (entry: Settings) => void
        • (entry: Settings): void
        • Parameters

          • entry: Settings

          Returns void

    Returns this

  • Parameters

    • event: "settingsUpdateEntry"
    • listener: (oldEntry: Settings, newEntry: Settings, path?: undefined | string) => void
        • (oldEntry: Settings, newEntry: Settings, path?: undefined | string): void
        • Parameters

          • oldEntry: Settings
          • newEntry: Settings
          • Optional path: undefined | string

          Returns void

    Returns this

  • Parameters

    • event: "taskError"
    • listener: (scheduledTask: ScheduledTask, task: Task, error: Error) => void
        • (scheduledTask: ScheduledTask, task: Task, error: Error): void
        • Parameters

          • scheduledTask: ScheduledTask
          • task: Task
          • error: Error

          Returns void

    Returns this

  • Parameters

    • event: "verbose"
    • listener: (data: any) => void
        • (data: any): void
        • Parameters

          • data: any

          Returns void

    Returns this

  • Parameters

    • event: "wtf"
    • listener: (failure: Error) => void
        • (failure: Error): void
        • Parameters

          • failure: Error

          Returns void

    Returns this

on

  • on(event: "argumentError", listener: (message: KlasaMessage, command: Command, params: any[], error: string) => void): this
  • on(event: "commandError", listener: (message: KlasaMessage, command: Command, params: any[], error: Error | string) => void): this
  • on(event: "commandInhibited", listener: (message: KlasaMessage, command: Command, response: string | Error) => void): this
  • on(event: "commandRun", listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void): this
  • on(event: "commandSuccess", listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void): this
  • on(event: "commandUnknown", listener: (message: KlasaMessage, command: string, prefix: RegExp, prefixLength: number) => void): this
  • on(event: "finalizerError", listener: (message: KlasaMessage, command: Command, response: KlasaMessage, runTime: Stopwatch, finalizer: Finalizer, error: Error | string) => void): this
  • on(event: "klasaReady", listener: () => void): this
  • on(event: "log", listener: (data: any) => void): this
  • on(event: "monitorError", listener: (message: KlasaMessage, monitor: Monitor, error: Error | string) => void): this
  • on(event: "pieceDisabled", listener: (piece: Piece) => void): this
  • on(event: "pieceEnabled", listener: (piece: Piece) => void): this
  • on(event: "pieceLoaded", listener: (piece: Piece) => void): this
  • on(event: "pieceReloaded", listener: (piece: Piece) => void): this
  • on(event: "pieceUnloaded", listener: (piece: Piece) => void): this
  • on(event: "settingsCreateEntry", listener: (entry: Settings) => void): this
  • on(event: "settingsDeleteEntry", listener: (entry: Settings) => void): this
  • on(event: "settingsUpdateEntry", listener: (oldEntry: Settings, newEntry: Settings, path?: undefined | string) => void): this
  • on(event: "taskError", listener: (scheduledTask: ScheduledTask, task: Task, error: Error) => void): this
  • on(event: "verbose", listener: (data: any) => void): this
  • on(event: "wtf", listener: (failure: Error) => void): this
  • Parameters

    • event: "argumentError"
    • listener: (message: KlasaMessage, command: Command, params: any[], error: string) => void
        • (message: KlasaMessage, command: Command, params: any[], error: string): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • error: string

          Returns void

    Returns this

  • Parameters

    • event: "commandError"
    • listener: (message: KlasaMessage, command: Command, params: any[], error: Error | string) => void
        • (message: KlasaMessage, command: Command, params: any[], error: Error | string): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • error: Error | string

          Returns void

    Returns this

  • Parameters

    • event: "commandInhibited"
    • listener: (message: KlasaMessage, command: Command, response: string | Error) => void
        • (message: KlasaMessage, command: Command, response: string | Error): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • response: string | Error

          Returns void

    Returns this

  • Parameters

    • event: "commandRun"
    • listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void
        • (message: KlasaMessage, command: Command, params: any[], response: any): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • response: any

          Returns void

    Returns this

  • Parameters

    • event: "commandSuccess"
    • listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void
        • (message: KlasaMessage, command: Command, params: any[], response: any): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • response: any

          Returns void

    Returns this

  • Parameters

    • event: "commandUnknown"
    • listener: (message: KlasaMessage, command: string, prefix: RegExp, prefixLength: number) => void
        • (message: KlasaMessage, command: string, prefix: RegExp, prefixLength: number): void
        • Parameters

          • message: KlasaMessage
          • command: string
          • prefix: RegExp
          • prefixLength: number

          Returns void

    Returns this

  • Parameters

    • event: "finalizerError"
    • listener: (message: KlasaMessage, command: Command, response: KlasaMessage, runTime: Stopwatch, finalizer: Finalizer, error: Error | string) => void
        • (message: KlasaMessage, command: Command, response: KlasaMessage, runTime: Stopwatch, finalizer: Finalizer, error: Error | string): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • response: KlasaMessage
          • runTime: Stopwatch
          • finalizer: Finalizer
          • error: Error | string

          Returns void

    Returns this

  • Parameters

    • event: "klasaReady"
    • listener: () => void
        • (): void
        • Returns void

    Returns this

  • Parameters

    • event: "log"
    • listener: (data: any) => void
        • (data: any): void
        • Parameters

          • data: any

          Returns void

    Returns this

  • Parameters

    • event: "monitorError"
    • listener: (message: KlasaMessage, monitor: Monitor, error: Error | string) => void
        • (message: KlasaMessage, monitor: Monitor, error: Error | string): void
        • Parameters

          • message: KlasaMessage
          • monitor: Monitor
          • error: Error | string

          Returns void

    Returns this

  • Parameters

    • event: "pieceDisabled"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceEnabled"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceLoaded"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceReloaded"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceUnloaded"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "settingsCreateEntry"
    • listener: (entry: Settings) => void
        • (entry: Settings): void
        • Parameters

          • entry: Settings

          Returns void

    Returns this

  • Parameters

    • event: "settingsDeleteEntry"
    • listener: (entry: Settings) => void
        • (entry: Settings): void
        • Parameters

          • entry: Settings

          Returns void

    Returns this

  • Parameters

    • event: "settingsUpdateEntry"
    • listener: (oldEntry: Settings, newEntry: Settings, path?: undefined | string) => void
        • (oldEntry: Settings, newEntry: Settings, path?: undefined | string): void
        • Parameters

          • oldEntry: Settings
          • newEntry: Settings
          • Optional path: undefined | string

          Returns void

    Returns this

  • Parameters

    • event: "taskError"
    • listener: (scheduledTask: ScheduledTask, task: Task, error: Error) => void
        • (scheduledTask: ScheduledTask, task: Task, error: Error): void
        • Parameters

          • scheduledTask: ScheduledTask
          • task: Task
          • error: Error

          Returns void

    Returns this

  • Parameters

    • event: "verbose"
    • listener: (data: any) => void
        • (data: any): void
        • Parameters

          • data: any

          Returns void

    Returns this

  • Parameters

    • event: "wtf"
    • listener: (failure: Error) => void
        • (failure: Error): void
        • Parameters

          • failure: Error

          Returns void

    Returns this

once

  • once(event: "argumentError", listener: (message: KlasaMessage, command: Command, params: any[], error: string) => void): this
  • once(event: "commandError", listener: (message: KlasaMessage, command: Command, params: any[], error: Error | string) => void): this
  • once(event: "commandInhibited", listener: (message: KlasaMessage, command: Command, response: string | Error) => void): this
  • once(event: "commandRun", listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void): this
  • once(event: "commandSuccess", listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void): this
  • once(event: "commandUnknown", listener: (message: KlasaMessage, command: string, prefix: RegExp, prefixLength: number) => void): this
  • once(event: "finalizerError", listener: (message: KlasaMessage, command: Command, response: KlasaMessage, runTime: Stopwatch, finalizer: Finalizer, error: Error | string) => void): this
  • once(event: "klasaReady", listener: () => void): this
  • once(event: "log", listener: (data: any) => void): this
  • once(event: "monitorError", listener: (message: KlasaMessage, monitor: Monitor, error: Error | string) => void): this
  • once(event: "pieceDisabled", listener: (piece: Piece) => void): this
  • once(event: "pieceEnabled", listener: (piece: Piece) => void): this
  • once(event: "pieceLoaded", listener: (piece: Piece) => void): this
  • once(event: "pieceReloaded", listener: (piece: Piece) => void): this
  • once(event: "pieceUnloaded", listener: (piece: Piece) => void): this
  • once(event: "settingsCreateEntry", listener: (entry: Settings) => void): this
  • once(event: "settingsDeleteEntry", listener: (entry: Settings) => void): this
  • once(event: "settingsUpdateEntry", listener: (oldEntry: Settings, newEntry: Settings, path?: undefined | string) => void): this
  • once(event: "taskError", listener: (scheduledTask: ScheduledTask, task: Task, error: Error) => void): this
  • once(event: "verbose", listener: (data: any) => void): this
  • once(event: "wtf", listener: (failure: Error) => void): this
  • Parameters

    • event: "argumentError"
    • listener: (message: KlasaMessage, command: Command, params: any[], error: string) => void
        • (message: KlasaMessage, command: Command, params: any[], error: string): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • error: string

          Returns void

    Returns this

  • Parameters

    • event: "commandError"
    • listener: (message: KlasaMessage, command: Command, params: any[], error: Error | string) => void
        • (message: KlasaMessage, command: Command, params: any[], error: Error | string): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • error: Error | string

          Returns void

    Returns this

  • Parameters

    • event: "commandInhibited"
    • listener: (message: KlasaMessage, command: Command, response: string | Error) => void
        • (message: KlasaMessage, command: Command, response: string | Error): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • response: string | Error

          Returns void

    Returns this

  • Parameters

    • event: "commandRun"
    • listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void
        • (message: KlasaMessage, command: Command, params: any[], response: any): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • response: any

          Returns void

    Returns this

  • Parameters

    • event: "commandSuccess"
    • listener: (message: KlasaMessage, command: Command, params: any[], response: any) => void
        • (message: KlasaMessage, command: Command, params: any[], response: any): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • params: any[]
          • response: any

          Returns void

    Returns this

  • Parameters

    • event: "commandUnknown"
    • listener: (message: KlasaMessage, command: string, prefix: RegExp, prefixLength: number) => void
        • (message: KlasaMessage, command: string, prefix: RegExp, prefixLength: number): void
        • Parameters

          • message: KlasaMessage
          • command: string
          • prefix: RegExp
          • prefixLength: number

          Returns void

    Returns this

  • Parameters

    • event: "finalizerError"
    • listener: (message: KlasaMessage, command: Command, response: KlasaMessage, runTime: Stopwatch, finalizer: Finalizer, error: Error | string) => void
        • (message: KlasaMessage, command: Command, response: KlasaMessage, runTime: Stopwatch, finalizer: Finalizer, error: Error | string): void
        • Parameters

          • message: KlasaMessage
          • command: Command
          • response: KlasaMessage
          • runTime: Stopwatch
          • finalizer: Finalizer
          • error: Error | string

          Returns void

    Returns this

  • Parameters

    • event: "klasaReady"
    • listener: () => void
        • (): void
        • Returns void

    Returns this

  • Parameters

    • event: "log"
    • listener: (data: any) => void
        • (data: any): void
        • Parameters

          • data: any

          Returns void

    Returns this

  • Parameters

    • event: "monitorError"
    • listener: (message: KlasaMessage, monitor: Monitor, error: Error | string) => void
        • (message: KlasaMessage, monitor: Monitor, error: Error | string): void
        • Parameters

          • message: KlasaMessage
          • monitor: Monitor
          • error: Error | string

          Returns void

    Returns this

  • Parameters

    • event: "pieceDisabled"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceEnabled"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceLoaded"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceReloaded"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "pieceUnloaded"
    • listener: (piece: Piece) => void
        • (piece: Piece): void
        • Parameters

          • piece: Piece

          Returns void

    Returns this

  • Parameters

    • event: "settingsCreateEntry"
    • listener: (entry: Settings) => void
        • (entry: Settings): void
        • Parameters

          • entry: Settings

          Returns void

    Returns this

  • Parameters

    • event: "settingsDeleteEntry"
    • listener: (entry: Settings) => void
        • (entry: Settings): void
        • Parameters

          • entry: Settings

          Returns void

    Returns this

  • Parameters

    • event: "settingsUpdateEntry"
    • listener: (oldEntry: Settings, newEntry: Settings, path?: undefined | string) => void
        • (oldEntry: Settings, newEntry: Settings, path?: undefined | string): void
        • Parameters

          • oldEntry: Settings
          • newEntry: Settings
          • Optional path: undefined | string

          Returns void

    Returns this

  • Parameters

    • event: "taskError"
    • listener: (scheduledTask: ScheduledTask, task: Task, error: Error) => void
        • (scheduledTask: ScheduledTask, task: Task, error: Error): void
        • Parameters

          • scheduledTask: ScheduledTask
          • task: Task
          • error: Error

          Returns void

    Returns this

  • Parameters

    • event: "verbose"
    • listener: (data: any) => void
        • (data: any): void
        • Parameters

          • data: any

          Returns void

    Returns this

  • Parameters

    • event: "wtf"
    • listener: (failure: Error) => void
        • (failure: Error): void
        • Parameters

          • failure: Error

          Returns void

    Returns this

registerStore

  • registerStore<K, V, VConstructor>(store: Store<K, V, VConstructor>): KlasaClient
  • Type parameters

    • K

    • V: Piece

    • VConstructor

    Parameters

    • store: Store<K, V, VConstructor>

    Returns KlasaClient

sweepMessages

  • sweepMessages(lifetime?: undefined | number, commandLifeTime?: undefined | number): number
  • Parameters

    • Optional lifetime: undefined | number
    • Optional commandLifeTime: undefined | number

    Returns number

unregisterStore

  • unregisterStore<K, V, VConstructor>(store: Store<K, V, VConstructor>): KlasaClient
  • Type parameters

    • K

    • V: Piece

    • VConstructor

    Parameters

    • store: Store<K, V, VConstructor>

    Returns KlasaClient

Static [KlasaClient.plugin]

Static use

  • use(mod: any): typeof KlasaClient
  • Parameters

    • mod: any

    Returns typeof KlasaClient

Generated using TypeDoc