import { BaseIntegration } from './classes.baseintegration.js'; import { DiscoveryDescriptor } from './classes.discoverydescriptor.js'; import { IntegrationError } from './errors.js'; import type { IIntegrationRuntime, IIntegrationSetupContext, TIntegrationStatus } from './types.js'; export interface IDescriptorOnlyIntegrationOptions { domain: string; displayName: string; status?: TIntegrationStatus; metadata?: Record; } export class DescriptorOnlyIntegration extends BaseIntegration { public readonly domain: string; public readonly displayName: string; public readonly status: TIntegrationStatus; public readonly discoveryDescriptor: DiscoveryDescriptor; public readonly metadata: Record; constructor(optionsArg: IDescriptorOnlyIntegrationOptions) { super(); this.domain = optionsArg.domain; this.displayName = optionsArg.displayName; this.status = optionsArg.status || 'descriptor-only'; this.metadata = optionsArg.metadata || {}; this.discoveryDescriptor = new DiscoveryDescriptor({ integrationDomain: this.domain, displayName: this.displayName, }); } public async setup(configArg: unknown, contextArg: IIntegrationSetupContext): Promise { void configArg; void contextArg; throw new IntegrationError( `Integration ${this.domain} is descriptor-only and has no TypeScript runtime yet.`, 'DESCRIPTOR_ONLY_INTEGRATION' ); } public async destroy(): Promise {} }