import Analyzer from './analyzer';
import type { TreeType } from './analyzer';
import { V2AddonResolver } from './package';
import type { Node } from 'broccoli-node-api';
import { type AddonInstance, type AddonMeta, type AppInstance } from '@embroider/shared-internals';
export interface AutoImportSharedAPI {
    isPrimary(addonInstance: AddonInstance): boolean;
    analyze(tree: Node, addon: AddonInstance, treeType?: TreeType, supportsFastAnalyzer?: true): Node;
    included(addonInstance: AddonInstance): void;
    addTo(tree: Node): Node;
    registerV2Addon(packageName: string, packageRoot: string, compatOptions?: CompatOptions): void;
}
export interface CompatOptions {
    customizeMeta?: (meta: AddonMeta) => AddonMeta;
}
export default class AutoImport implements AutoImportSharedAPI {
    private packages;
    private packageCache;
    private env;
    private consoleWrite;
    private analyzers;
    private bundles;
    private v2Addons;
    static register(addon: AddonInstance): void;
    static lookup(addon: AddonInstance): AutoImportSharedAPI;
    constructor(addonInstance: AddonInstance);
    installAppFilter(_host: AppInstance): void;
    isPrimary(_addon: AddonInstance): boolean;
    analyze(tree: Node, addon: AddonInstance, treeType?: TreeType, supportsFastAnalyzer?: true): Analyzer;
    registerV2Addon(packageName: string, packageRoot: string, options?: CompatOptions): void;
    get v2AddonResolver(): V2AddonResolver;
    private _renamedModules;
    private renamedModules;
    private makeBundler;
    private get rootPackage();
    addTo(allAppTree: Node): Node;
    included(addonInstance: AddonInstance): void;
    private installBabelPlugin;
    private configureFingerprints;
}
