import { Engine } from '../engine.js';
import { Extension, ExtensionVersion } from '../extension.js';
import { ActionClass, Category, PipeClass } from '../model/index.js';
export declare class ResolverService {
    protected engine: Engine;
    protected extensions: Extension[];
    protected actionTypeMap: Map<string, ActionClass> | null;
    protected actionCategories: Category<ActionClass>[] | null;
    protected pipeTypeMap: Map<string, PipeClass> | null;
    protected pipeCategories: Category<PipeClass>[] | null;
    constructor(engine: Engine);
    getExtensions(): Extension[];
    addExtension(ext: Extension): void;
    removeExtension(ext: Extension): void;
    purgeExtensions(): void;
    getActionClass(type: string): ActionClass;
    getPipeClass(type: string): PipeClass;
    getActionIndex(): Map<string, ActionClass>;
    getActionCategories(): Category<ActionClass>[];
    getPipeIndex(): Map<string, PipeClass>;
    getPipeCategories(): Category<PipeClass>[];
    getInspectionClasses(): import("../model/inspection.js").InspectionClass[];
    unmetDependencies(requirements: ExtensionVersion[]): Iterable<ExtensionUnmetDep>;
    protected invalidate(): void;
    protected reindex(): void;
    protected getAllExtensions(): Extension[];
    protected buildCategories<T extends ActionClass | PipeClass>(items: T[]): Category<T>[];
}
export interface ExtensionUnmetDep {
    name: string;
    version: string;
    existingVersion: string | null;
}
//# sourceMappingURL=resolver.d.ts.map