36 lines
989 B
TypeScript
36 lines
989 B
TypeScript
export enum ExtensionTypeEnum {
|
|
Assistant = 'assistant',
|
|
Conversational = 'conversational',
|
|
Inference = 'inference',
|
|
Model = 'model',
|
|
SystemMonitoring = 'systemMonitoring',
|
|
}
|
|
|
|
export interface ExtensionType {
|
|
type(): ExtensionTypeEnum | undefined
|
|
}
|
|
/**
|
|
* Represents a base extension.
|
|
* This class should be extended by any class that represents an extension.
|
|
*/
|
|
export abstract class BaseExtension implements ExtensionType {
|
|
/**
|
|
* Returns the type of the extension.
|
|
* @returns {ExtensionType} The type of the extension
|
|
* Undefined means its not extending any known extension by the application.
|
|
*/
|
|
type(): ExtensionTypeEnum | undefined {
|
|
return undefined
|
|
}
|
|
/**
|
|
* Called when the extension is loaded.
|
|
* Any initialization logic for the extension should be put here.
|
|
*/
|
|
abstract onLoad(): void
|
|
/**
|
|
* Called when the extension is unloaded.
|
|
* Any cleanup logic for the extension should be put here.
|
|
*/
|
|
abstract onUnload(): void
|
|
}
|