2025-09-30 21:48:38 +07:00

42 lines
1.2 KiB
TypeScript

/**
* Web Extension Types
*/
import type { ConversationalExtension, BaseExtension, AIEngine, MCPExtension } from '@janhq/core'
type ExtensionConstructorParams = ConstructorParameters<typeof BaseExtension>
export interface ConversationalWebModule {
default: new (...args: ExtensionConstructorParams) => ConversationalExtension
}
export interface JanProviderWebModule {
default: new (...args: ExtensionConstructorParams) => AIEngine
}
export interface MCPWebModule {
default: new (...args: ExtensionConstructorParams) => MCPExtension
}
export type WebExtensionModule = ConversationalWebModule | JanProviderWebModule | MCPWebModule
export interface WebExtensionRegistry {
'conversational-web': () => Promise<ConversationalWebModule>
'jan-provider-web': () => Promise<JanProviderWebModule>
'mcp-web': () => Promise<MCPWebModule>
}
export type WebExtensionName = keyof WebExtensionRegistry
export type WebExtensionLoader<T extends WebExtensionName> = WebExtensionRegistry[T]
export interface IndexedDBConfig {
dbName: string
version: number
stores: {
name: string
keyPath: string
indexes?: { name: string; keyPath: string | string[]; unique?: boolean }[]
}[]
}