import { ICamstackAddon, AddonContext, IEngineManager, IEngineInstance } from '@camstack/types';
import { AddonLoader } from './addon-loader.js';
export declare class AddonEngineManager implements IEngineManager {
    private readonly loader;
    private readonly baseContext;
    private engines;
    constructor(loader: AddonLoader, baseContext: Partial<Omit<AddonContext, 'addonConfig'>>);
    /**
     * Get or create an addon engine for the given effective config.
     * Cameras with the same addonId + effective config share the same engine.
     */
    getOrCreateEngine(addonId: string, globalConfig: Record<string, unknown>, cameraOverride?: Record<string, unknown>): Promise<IEngineInstance>;
    /** Get all active engines */
    getActiveEngines(): Map<string, ICamstackAddon>;
    /** Shutdown a specific engine by its config key */
    shutdownEngine(configKey: string): Promise<void>;
    /** Shutdown all engines */
    shutdownAll(): Promise<void>;
    /** Compute a deterministic config key (visible for tests) */
    computeConfigKey(addonId: string, effectiveConfig: Record<string, unknown>): string;
    private hashConfig;
}
//# sourceMappingURL=addon-engine-manager.d.ts.map