Open Ticket v4.2: Config Update (JSONC)

This commit is contained in:
DJj123dj
2026-05-17 22:28:23 +02:00
parent afd7f80b8d
commit dd8d5a12d6
106 changed files with 2199 additions and 1198 deletions
+196 -95
View File
@@ -10,20 +10,20 @@ import { ODRoleUpdateMode } from "../api/role.js"
* It's used to generate typescript declarations for this class.
*/
export interface ODConfigManagerIdMappings extends api.ODConfigManagerIdConstraint {
"opendiscord:general":ODGeneralJsonConfig,
"opendiscord:questions":ODQuestionsJsonConfig,
"opendiscord:options":ODOptionsJsonConfig,
"opendiscord:panels":ODPanelsJsonConfig,
"opendiscord:transcripts":ODTranscriptsJsonConfig
"opendiscord:general":ODGeneralJsonCommentsConfig,
"opendiscord:questions":ODQuestionsJsonCommentsConfig,
"opendiscord:options":ODOptionsJsonCommentsConfig,
"opendiscord:panels":ODPanelsJsonCommentsConfig,
"opendiscord:transcripts":ODTranscriptsJsonCommentsConfig
}
///////////////////////////////////////
// CONFIG STRUCTURES, VALUES & TYPES
// --> general.json
// --> general.jsonc
///////////////////////////////////////
/**## ODGeneralJsonConfig_Status `interface`
* This interface is an object which has all properties for the status object in the `general.json` config!
* This interface is an object which has all properties for the status object in the `general.jsonc` config!
*/
export interface ODGeneralJsonConfig_Status {
/**Is the status enabled? */
@@ -39,7 +39,7 @@ export interface ODGeneralJsonConfig_Status {
}
/**## ODGeneralJsonConfig_MessageSettings `interface`
* This interface is an object which has all properties for the "system"."messages".... object in the `general.json` config!
* This interface is an object which has all properties for the "system"."messages".... object in the `general.jsonc` config!
*/
export interface ODGeneralJsonConfig_MessageSettings {
/**Enable sending DM logs to the ticket creator for this action. */
@@ -49,22 +49,10 @@ export interface ODGeneralJsonConfig_MessageSettings {
}
/**## ODGeneralJsonConfig_CmdPermissionSettingsType `type`
* This type is a collection of command permission settings for the "system"."permissions".... object in the `general.json` config!
* This type is a collection of command permission settings for the "system"."permissions".... object in the `general.jsonc` config!
*/
export type ODGeneralJsonConfig_CmdPermissionSettingsType = "admin"|"everyone"|"none"|string
/**## ODGeneralJsonConfig_Info `interface`
* This object contains a few URLs and metadata for the config.
*/
export interface ODGeneralJsonConfig_Info {
/**A link to the Open Ticket documentation. */
support:string,
/**A link to the DJdj Development discord server. */
discord:string,
/**The version of Open Ticket this config is compatible with. */
version:string
}
/**## ODGeneralJsonConfig_SystemLogs `interface`
* All settings related to the log channel.
*/
@@ -72,7 +60,9 @@ export interface ODGeneralJsonConfig_SystemLogs {
/**Enable logging. Individual actions should still be added via the `"system"."messages"..."logs"` */
enabled:boolean,
/**The channel to send logs to. */
channel:string
channel:string,
/**Configure dm & log messages for all Open Ticket commands & actions. */
logMessages:ODGeneralJsonConfig_LogMessages
}
/**## ODGeneralJsonConfig_SystemLimits `interface`
@@ -137,12 +127,13 @@ export interface ODGeneralJsonConfig_SystemPermissions {
transfer:ODGeneralJsonConfig_CmdPermissionSettingsType,
topic:ODGeneralJsonConfig_CmdPermissionSettingsType,
priority:ODGeneralJsonConfig_CmdPermissionSettingsType,
transcripts:ODGeneralJsonConfig_CmdPermissionSettingsType,
}
/**## ODGeneralJsonConfig_SystemMessages `interface`
/**## ODGeneralJsonConfig_LogMessages `interface`
* Configure dm & log messages for all Open Ticket commands & actions.
*/
export interface ODGeneralJsonConfig_SystemMessages {
export interface ODGeneralJsonConfig_LogMessages {
creation:ODGeneralJsonConfig_MessageSettings,
closing:ODGeneralJsonConfig_MessageSettings,
deleting:ODGeneralJsonConfig_MessageSettings,
@@ -160,10 +151,10 @@ export interface ODGeneralJsonConfig_SystemMessages {
reactionRole:ODGeneralJsonConfig_MessageSettings,
}
/**## ODGeneralJsonConfig_System `interface`
/**## ODGeneralJsonConfig_TicketSystem `interface`
* All settings related to the ticket system.
*/
export interface ODGeneralJsonConfig_System {
export interface ODGeneralJsonConfig_TicketSystem {
/**Prefer slash-commands over text-commands when displaying them in menu's and messages. */
preferSlashOverText:boolean,
/**Reply with "unknown command" when the prefix is used without a valid command. */
@@ -184,6 +175,8 @@ export interface ODGeneralJsonConfig_System {
emojiStyle:"before"|"after"|"double"|"disabled",
/**The emoji used when pinning tickets. This is '📌' by default. */
pinEmoji:string,
/**The emoji used when closing tickets. This is '🔒' by default. */
closeEmoji:string,
/**Reply with an ephemeral message when a ticket is created. */
replyOnTicketCreation:boolean,
@@ -220,9 +213,8 @@ export interface ODGeneralJsonConfig_System {
enableTicketActionWithReason:boolean,
/**Enable/disable the delete without transcript feature (button & /delete command). */
enableDeleteWithoutTranscript:boolean,
/**All settings related to the log channel. */
logs:ODGeneralJsonConfig_SystemLogs,
/**Enable/disable creating tickets for other users with /ticket <user>. (ADMIN ONLY) */
enableCreateTicketForOtherUser:boolean,
/**All settings related to global ticket limits. */
limits:ODGeneralJsonConfig_SystemLimits,
@@ -230,19 +222,31 @@ export interface ODGeneralJsonConfig_System {
/**All global channel topic settings. */
channelTopic:ODGeneralJsonConfig_SystemChannelTopic,
/**Configure permissions for all Open Ticket commands & actions. */
permissions:ODGeneralJsonConfig_SystemPermissions,
/**Configure dm & log messages for all Open Ticket commands & actions. */
messages:ODGeneralJsonConfig_SystemMessages
/**Move closed tickets to this channel category. */
closedCategory:{
enabled:boolean
categoryId:string
},
/**Create tickets in this channel category when the original category is full (max 50 channels). */
backupCategory:{
enabled:boolean
categoryId:string
},
/**Move claimed tickets to the matching channel category of the user that claimed the ticket. */
claimedCategories:{
/**The user who claimed the ticket. */
user:string,
/**The category to move the ticket to. */
category:string
}[],
}
/**## ODGeneralJsonConfig_GeneralData `interface`
* All contents of the `general.json` config file.
* All contents of the `general.jsonc` config file.
*/
export interface ODGeneralJsonConfig_GeneralData {
/**This object contains a few URLs and metadata for the config. */
_INFO:ODGeneralJsonConfig_Info,
_CONFIG_VERSION:string,
/**The token of the bot. (Empty when using `tokenFromENV`) */
token:string,
@@ -267,18 +271,24 @@ export interface ODGeneralJsonConfig_GeneralData {
/**All settings related to the status of the bot. */
status:ODGeneralJsonConfig_Status,
/**All settings related to the ticket system. */
system:ODGeneralJsonConfig_System
ticketSystem:ODGeneralJsonConfig_TicketSystem,
/**Configure permissions for all Open Ticket commands & actions. */
permissions:ODGeneralJsonConfig_SystemPermissions,
/**All settings related to the log channel. */
logs:ODGeneralJsonConfig_SystemLogs,
}
///////////////////////////////////////
// CONFIG STRUCTURES, VALUES & TYPES
// --> options.json
// --> options.jsonc
///////////////////////////////////////
/**## ODOptionsJsonConfig_BaseOption `interface`
* This interface is an object which has all basic properties for options in the `options.json` config!
* The basic properties for options in the `options.jsonc` config!
*/
export interface ODOptionsJsonConfig_BaseOption {
/**The id of this option. */
@@ -288,7 +298,7 @@ export interface ODOptionsJsonConfig_BaseOption {
/**The description of this option. */
description:string,
/**The type of this option. This type also determines the other option-specific variables. */
type:"ticket"|"website"|"role",
type:"ticket"|"website"|"role"|"sub-panel",
/**All settings related to the button for the 3 option types. */
button:{
/**The emoji of the button. (can also be empty) */
@@ -299,7 +309,7 @@ export interface ODOptionsJsonConfig_BaseOption {
}
/**## ODOptionsJsonConfig_OptionButtonSettings `interface`
* This interface is an object which has all button settings for ticket & reaction role options in the `options.json` config!
* The button settings for ticket, sub-panel & reaction role options in the `options.jsonc` config!
*/
export interface ODOptionsJsonConfig_OptionButtonSettings {
/**The emoji of the button. (can also be empty) */
@@ -311,7 +321,7 @@ export interface ODOptionsJsonConfig_OptionButtonSettings {
}
/**## ODOptionsJsonConfig_TicketOptionEmbedSettings `interface`
* This interface is an object which has all message embed settings for ticket options in the `options.json` config!
* The message embed settings for ticket options in the `options.jsonc` config!
*/
export interface ODOptionsJsonConfig_TicketOptionEmbedSettings {
/**Is this embed enabled? */
@@ -340,7 +350,7 @@ export interface ODOptionsJsonConfig_TicketOptionEmbedSettings {
}
/**## ODOptionsJsonConfig_TicketOptionPingSettings `interface`
* This interface is an object which has all message ping settings for ticket options in the `options.json` config!
* The message ping settings for ticket options in the `options.jsonc` config!
*/
export interface ODOptionsJsonConfig_TicketOptionPingSettings {
/**Ping `@here`. */
@@ -361,23 +371,12 @@ export interface ODOptionsJsonConfig_TicketOptionChannelSettings {
suffix:"user-name"|"user-nickname"|"user-id"|"random-number"|"random-hex"|"counter-dynamic"|"counter-fixed",
/**An optional discord category id to create this ticket in. */
category:string,
/**An optional discord category id to move this ticket to when closed. */
closedCategory:string,
/**An optional discord category id to create this ticket in when the primary one is full (max. 50 tickets). */
backupCategory:string,
/**A list of discord category ids to move this ticket to when claimed by a specific user. */
claimedCategory:{
/**The user which claimed the ticket. */
user:string,
/**The category to move the ticket to when claimed by this user. */
category:string
}[],
/**The channel topic shown at the top of the channel in discord. */
topic:string
}
/**## ODOptionsJsonConfig_TicketOption `interface`
* This interface is an object which has all ticket properties for options in the `options.json` config!
* All properties for ticket options in the `options.jsonc` config!
*/
export interface ODOptionsJsonConfig_TicketOption extends ODOptionsJsonConfig_BaseOption {
type:"ticket",
@@ -388,7 +387,7 @@ export interface ODOptionsJsonConfig_TicketOption extends ODOptionsJsonConfig_Ba
readonlyAdmins:string[],
/**When enabled, blacklisted users can still create this ticket type. (used for appeals, etc) */
allowCreationByBlacklistedUsers:boolean,
/**A list of valid question ids from the `questions.json` config. */
/**A list of valid question ids from the `questions.jsonc` config. */
questions:string[],
/**All settings related to the ticket channel itself. */
channel:ODOptionsJsonConfig_TicketOptionChannelSettings,
@@ -460,7 +459,7 @@ export interface ODOptionsJsonConfig_TicketOption extends ODOptionsJsonConfig_Ba
}
/**## ODOptionsJsonConfig_WebsiteOption `interface`
* This interface is an object which has all website properties for options in the `options.json` config!
* All properties for website options in the `options.jsonc` config!
*/
export interface ODOptionsJsonConfig_WebsiteOption extends ODOptionsJsonConfig_BaseOption {
type:"website",
@@ -469,7 +468,7 @@ export interface ODOptionsJsonConfig_WebsiteOption extends ODOptionsJsonConfig_B
}
/**## ODOptionsJsonConfig_RoleOption `interface`
* This interface is an object which has all reaction role properties for options in the `options.json` config!
* All properties for reaction-role options in the `options.jsonc` config!
*/
export interface ODOptionsJsonConfig_RoleOption extends ODOptionsJsonConfig_BaseOption {
type:"role",
@@ -484,18 +483,28 @@ export interface ODOptionsJsonConfig_RoleOption extends ODOptionsJsonConfig_Base
addOnMemberJoin:boolean
}
/**## ODOptionsJsonConfig_OptionsData `type`
* All contents of the `options.json` config file.
/**## ODOptionsJsonConfig_SubPanelOption `interface`
* All properties for sub-panel options in the `options.jsonc` config!
*/
export type ODOptionsJsonConfig_OptionsData = (ODOptionsJsonConfig_TicketOption|ODOptionsJsonConfig_WebsiteOption|ODOptionsJsonConfig_RoleOption)[]
export interface ODOptionsJsonConfig_SubPanelOption extends ODOptionsJsonConfig_BaseOption {
type:"sub-panel",
button:ODOptionsJsonConfig_OptionButtonSettings,
/**The panel ID of the sub-panel to show when the button is clicked. */
subPanelId:string
}
/**## ODOptionsJsonConfig_OptionsData `type`
* All contents of the `options.jsonc` config file.
*/
export type ODOptionsJsonConfig_OptionsData = (ODOptionsJsonConfig_TicketOption|ODOptionsJsonConfig_WebsiteOption|ODOptionsJsonConfig_RoleOption|ODOptionsJsonConfig_SubPanelOption)[]
///////////////////////////////////////
// CONFIG STRUCTURES, VALUES & TYPES
// --> panels.json
// --> panels.jsonc
///////////////////////////////////////
/**## ODPanelsJsonConfig_PanelEmbedSettings `interface`
* This interface is an object which has all message embed settings for panels in the `panels.json` config!
* This interface is an object which has all message embed settings for panels in the `panels.jsonc` config!
*/
export interface ODPanelsJsonConfig_PanelEmbedSettings {
/**Is this embed enabled? */
@@ -535,6 +544,8 @@ export interface ODPanelsJsonConfig_PanelEmbedSettings {
export interface ODPanelsJsonConfig_PanelSettings {
/**The placeholder used in the dropdown when enabled. */
dropdownPlaceholder:string,
/**The maximum amount of option buttons before starting a new row. */
maximumButtonsPerRow:number
/**Enable a max tickets warning in the text contents. */
enableMaxTicketsWarningInText:boolean,
@@ -554,7 +565,7 @@ export interface ODPanelsJsonConfig_PanelSettings {
}
/**## ODPanelsJsonConfig_Panel `interface`
* This interface is an object which has all properties for panels in the `panels.json` config!
* This interface is an object which has all properties for panels in the `panels.jsonc` config!
*/
export interface ODPanelsJsonConfig_Panel {
/**The id of this panel. */
@@ -563,7 +574,7 @@ export interface ODPanelsJsonConfig_Panel {
name:string,
/**When enabled, the panel uses a dropdown instead of buttons. */
dropdown:boolean,
/**A list of valid options ids from the `options.json` config. */
/**A list of valid options ids from the `options.jsonc` config. */
options:string[],
/**The raw text contents of this panel. (empty for embed only) */
@@ -575,19 +586,19 @@ export interface ODPanelsJsonConfig_Panel {
}
/**## ODPanelsJsonConfig_PanelsData `type`
* All contents of the `panels.json` config file.
* All contents of the `panels.jsonc` config file.
*/
export type ODPanelsJsonConfig_PanelsData = ODPanelsJsonConfig_Panel[]
///////////////////////////////////////
// CONFIG STRUCTURES, VALUES & TYPES
// --> questions.json
// --> questions.jsonc
///////////////////////////////////////
/**## ODQuestionsJsonConfig_QuestionLengthSettings `interface`
/**## ODQuestionsJsonConfig_TextLengthLimits `interface`
* This interface is a collection of settings related to length validation in a question.
*/
export interface ODQuestionsJsonConfig_QuestionLengthSettings {
export interface ODQuestionsJsonConfig_TextLengthLimits {
/**Enable text length verification. */
enabled:boolean,
/**The minimum text input length. */
@@ -596,48 +607,138 @@ export interface ODQuestionsJsonConfig_QuestionLengthSettings {
max:number
}
/**## ODQuestionsJsonConfig_CheckboxLimits `interface`
* The required amount of checkboxes validation in a question.
*/
export interface ODQuestionsJsonConfig_CheckboxLimits {
/**Enable checkbox limits. */
enabled:boolean,
/**The minimum amount of selected checkboxes. */
min:number,
/**The maximum amount of selected checkboxes. */
max:number
}
/**## ODQuestionsJsonConfig_DropdownChoice `interface`
* A dropdown choice used in `ODQuestionsJsonConfig_DropdownQuestion`
*/
export interface ODQuestionsJsonConfig_DropdownChoice {
/**The title of the choice. */
title:string,
/**The optional description of the choice. (Leave empty for none) */
description:string,
/**The optional emoji of the choice. (Leave empty for none) */
emoji:string
}
/**## ODQuestionsJsonConfig_RadioCheckboxChoice `interface`
* A radio/checkbox choice used in `ODQuestionsJsonConfig_RadioSelectQuestion` & `ODQuestionsJsonConfig_CheckboxSelectQuestion`
*/
export interface ODQuestionsJsonConfig_RadioCheckboxChoice {
/**The title of the choice. */
title:string,
/**The optional description of the choice. (Leave empty for none) */
description:string,
/**Is this choice selected by default? */
selectedByDefault:boolean
}
/**## ODQuestionsJsonConfig_BaseQuestion `interface`
* This interface is an object which has all universal properties for questions in the `questions.json` config!
* This interface is an object which has all universal properties for questions in the `questions.jsonc` config!
*/
export interface ODQuestionsJsonConfig_BaseQuestion {
/**The id of this question. */
id:string,
/**The name of this question. */
name:string,
/**The description of this question. (Leave empty for none) */
description:string,
/**The type of this question. */
type:"short"|"paragraph",
type:"short"|"paragraph"|"text-display"|"dropdown"|"radio-select"|"checkbox-select",
/**Is this question required? */
required:boolean,
}
/**## ODQuestionsJsonConfig_TextDisplayQuestion `interface`
* All properties for a text-display in the `questions.jsonc` config!
*/
export interface ODQuestionsJsonConfig_TextDisplayQuestion {
/**The id of this text-display. */
id:string,
/**The type of this question. */
type:"text-display",
/**The text contents to show in the modal. */
textContents:string
}
/**## ODQuestionsJsonConfig_ShortQuestion `interface`
* This interface is an object which has all properties for short questions in the `questions.json` config!
* All properties for short questions in the `questions.jsonc` config!
*/
export interface ODQuestionsJsonConfig_ShortQuestion extends ODQuestionsJsonConfig_BaseQuestion {
type:"short",
/**A placeholder for the question. */
placeholder:string,
/**A collection of settings related to length validation in a question. */
length:ODQuestionsJsonConfig_QuestionLengthSettings
length:ODQuestionsJsonConfig_TextLengthLimits
}
/**## ODQuestionsJsonConfig_ParagraphQuestion `interface`
* This interface is an object which has all properties for paragraph questions in the `questions.json` config!
* All properties for paragraph questions in the `questions.jsonc` config!
*/
export interface ODQuestionsJsonConfig_ParagraphQuestion extends ODQuestionsJsonConfig_BaseQuestion {
type:"paragraph",
/**A placeholder for the question. */
placeholder:string,
/**A collection of settings related to length validation in a question. */
length:ODQuestionsJsonConfig_QuestionLengthSettings
length:ODQuestionsJsonConfig_TextLengthLimits
}
/**## ODQuestionsJsonConfig_DropdownQuestion `interface`
* All properties for dropdown questions in the `questions.jsonc` config!
*/
export interface ODQuestionsJsonConfig_DropdownQuestion extends ODQuestionsJsonConfig_BaseQuestion {
type:"dropdown",
/**A placeholder for the dropdown. */
placeholder:string,
/**A list of maximum 25 dropdown choices. */
choices:ODQuestionsJsonConfig_DropdownChoice[]
}
/**## ODQuestionsJsonConfig_RadioSelectQuestion `interface`
* All properties for radio select questions in the `questions.jsonc` config!
*/
export interface ODQuestionsJsonConfig_RadioSelectQuestion extends ODQuestionsJsonConfig_BaseQuestion {
type:"radio-select",
/**A list of minimum 2, maximum 10 radio choices. */
choices:ODQuestionsJsonConfig_RadioCheckboxChoice[]
}
/**## ODQuestionsJsonConfig_CheckboxSelectQuestion `interface`
* All properties for checkbox select questions in the `questions.jsonc` config!
*/
export interface ODQuestionsJsonConfig_CheckboxSelectQuestion extends ODQuestionsJsonConfig_BaseQuestion {
type:"checkbox-select",
/**Verify the checked amount of checkboxes with a minimum & maximum. */
limits:ODQuestionsJsonConfig_CheckboxLimits
/**A list of minimum 1, maximum 10 checkbox choices. */
choices:ODQuestionsJsonConfig_RadioCheckboxChoice[]
}
/**## ODQuestionsJsonConfig_QuestionsData `type`
* All contents of the `questions.json` config file.
* All contents of the `questions.jsonc` config file.
*/
export type ODQuestionsJsonConfig_QuestionsData = (ODQuestionsJsonConfig_ShortQuestion|ODQuestionsJsonConfig_ParagraphQuestion)[]
export type ODQuestionsJsonConfig_QuestionsData = (
ODQuestionsJsonConfig_ShortQuestion|
ODQuestionsJsonConfig_ParagraphQuestion|
ODQuestionsJsonConfig_TextDisplayQuestion|
ODQuestionsJsonConfig_DropdownQuestion|
ODQuestionsJsonConfig_RadioSelectQuestion|
ODQuestionsJsonConfig_CheckboxSelectQuestion
)[]
///////////////////////////////////////
// CONFIG STRUCTURES, VALUES & TYPES
// --> transcripts.json
// --> transcripts.jsonc
///////////////////////////////////////
/**## ODTranscriptsJsonConfig_TranscriptsTextLayout `interface`
@@ -712,7 +813,7 @@ export interface ODTranscriptsJsonConfig_TranscriptsHtmlLayout {
}
/**## ODTranscriptsJsonConfig_TranscriptsData `interface`
* All contents of the `transcripts.json` config file.
* All contents of the `transcripts.jsonc` config file.
*/
export interface ODTranscriptsJsonConfig_TranscriptsData {
/**All general settings related to transcripts. */
@@ -760,27 +861,27 @@ export interface ODTranscriptsJsonConfig_TranscriptsData {
*/
export class ODMappedConfigManager extends api.ODConfigManager<ODConfigManagerIdMappings> {}
/**## ODGeneralJsonConfig `class
* A special class with types for the Open Ticket `config/general.json` config file
/**## ODGeneralJsonCommentsConfig `class
* A special class with types for the Open Ticket `config/general.jsonc` config file
*/
export class ODGeneralJsonConfig extends api.ODJsonConfig<ODGeneralJsonConfig_GeneralData> {}
export class ODGeneralJsonCommentsConfig extends api.ODJsonCommentsConfig<ODGeneralJsonConfig_GeneralData> {}
/**## ODQuestionsJsonConfig `class
* A special class with types for the Open Ticket `config/questions.json` config file
/**## ODQuestionsJsonCommentsConfig `class
* A special class with types for the Open Ticket `config/questions.jsonc` config file
*/
export class ODQuestionsJsonConfig extends api.ODJsonConfig<ODQuestionsJsonConfig_QuestionsData> {}
export class ODQuestionsJsonCommentsConfig extends api.ODJsonCommentsConfig<ODQuestionsJsonConfig_QuestionsData> {}
/**## ODOptionsJsonConfig `class
* A special class with types for the Open Ticket `config/options.json` config file
/**## ODOptionsJsonCommentsConfig `class
* A special class with types for the Open Ticket `config/options.jsonc` config file
*/
export class ODOptionsJsonConfig extends api.ODJsonConfig<ODOptionsJsonConfig_OptionsData> {}
export class ODOptionsJsonCommentsConfig extends api.ODJsonCommentsConfig<ODOptionsJsonConfig_OptionsData> {}
/**## ODPanelsJsonConfig `class
* A special class with types for the Open Ticket `config/panels.json` config file
/**## ODPanelsJsonCommentsConfig `class
* A special class with types for the Open Ticket `config/panels.jsonc` config file
*/
export class ODPanelsJsonConfig extends api.ODJsonConfig<ODPanelsJsonConfig_PanelsData> {}
export class ODPanelsJsonCommentsConfig extends api.ODJsonCommentsConfig<ODPanelsJsonConfig_PanelsData> {}
/**## ODTranscriptsJsonConfig `class
* A special class with types for the Open Ticket `config/transcripts.json` config file
/**## ODTranscriptsJsonCommentsConfig `class
* A special class with types for the Open Ticket `config/transcripts.jsonc` config file
*/
export class ODTranscriptsJsonConfig extends api.ODJsonConfig<ODTranscriptsJsonConfig_TranscriptsData> {}
export class ODTranscriptsJsonCommentsConfig extends api.ODJsonCommentsConfig<ODTranscriptsJsonConfig_TranscriptsData> {}