import Ajv from 'ajv'; import { Container } from 'inversify'; import { Engine } from './engine.js'; import { ActionClass, PipeClass } from './model/index.js'; import { InspectionClass } from './model/inspection.js'; import { JsonSchema } from './schema.js'; export interface ExtensionSpec { name: string; version: string; title: string; description: string; category: 'extension' | 'connector'; modules: string[]; entrypoint?: string; tags: string[]; private: boolean; } export interface ExtensionManifest { name: string; title: string; description: string; latestVersion: string; versions: string[]; tags: string[]; private: boolean; category?: 'extension' | 'connector'; } export interface ExtensionVersion { name: string; version: string; } export declare class Extension { dir: string; spec: ExtensionSpec; static load(dir: string): Promise; actionClasses: ActionClass[]; pipeClasses: PipeClass[]; inspectionClasses: InspectionClass[]; protected _container: Container | null; constructor(dir: string, spec: ExtensionSpec); isVersionWithinRange(range: string): boolean; init(engine: Engine): void; destroy(): void; isInitialized(): boolean; get container(): Container; protected loadModulesSync(): void; protected unloadModulesSync(): void; protected isActionClass(val: any): val is ActionClass; protected isPipeClass(val: any): val is PipeClass; protected isInspectionClass(val: any): val is InspectionClass; static loadExtensionSpec(dir: string): Promise; static loadPackageJson(dir: string): Promise; static packExtensionBundle(dir: string, tarballFile: string): Promise; static expandFilePatterns(cwd: string, patterns: string[]): Promise; static expandFilePatternsSync(cwd: string, patterns: string[]): string[]; static packageJsonSchema: JsonSchema; static packageJsonValidator: Ajv.ValidateFunction; } //# sourceMappingURL=extension.d.ts.map