import { InstanceInfo } from './instance-manager';
export type ExtensionManifest = (chrome.runtime.ManifestV2 & {
    background?: {
        scripts?: string[];
        type?: string;
    };
}) | (chrome.runtime.ManifestV3 & {
    background?: {
        service_worker?: string;
        type?: string;
    };
});
export interface GeneratedExtension {
    extensionId: string;
    manifest: ExtensionManifest;
    serviceWorkerPath: string;
    extensionPath: string;
}
export declare class DynamicExtensionManager {
    private readonly baseExtensionPath;
    private readonly projectPath;
    private readonly userExtensionsPath;
    constructor(projectPath?: string);
    private generateExtensionKey;
    private getBaseExtensionPath;
    private readBaseManifest;
    private readBaseServiceWorker;
    generateExtension(instance: InstanceInfo): Promise<GeneratedExtension>;
    private copyExtensionFiles;
    cleanupExtension(instanceId: string): Promise<void>;
    cleanupAllExtensions(): Promise<void>;
    getExtensionPath(instanceId: string): string;
    extensionExists(instanceId: string): Promise<boolean>;
    regenerateExtensionIfNeeded(instance: InstanceInfo): Promise<GeneratedExtension>;
}
