import { type PackageJson } from './dependencies';
import type { PluginMeta } from './plugins';
/**
 * @internal exported for tests
 */
export declare const isEsmPackage: (pkg: PackageJson) => boolean;
/**
 * @internal exported for tests
 */
export declare const hasReactPeerDependency: (pkg: PackageJson) => boolean;
/**
 * Targets libraries that ship a pre-built dist bundle (e.g. plugin UI kits) rather than
 * source packages like react-intl that still benefit from Vite's dep optimizer.
 *
 * @internal exported for tests
 */
export declare const shipsPreBuiltDist: (pkg: PackageJson) => boolean;
/**
 * @internal exported for tests
 */
export declare const shouldExcludeFromOptimizeDeps: (pkg: PackageJson) => boolean;
/**
 * @internal exported for tests
 */
export declare const getPluginPackageName: (modulePath: string) => string;
/**
 * Pre-built ESM libraries with React peers (shared plugin UI kits) are incompatible with
 * Strapi's React/design-system pre-bundling. Skip dep optimization so they resolve through
 * the admin resolve aliases instead of being re-bundled by Vite.
 *
 * Scans app and plugin dependency trees (#26944). Official @strapi/* packages and pinned
 * singletons are never auto-excluded — @strapi/strapi matches the heuristic but must stay on
 * the optimizeDeps.include path (#26944, #27014).
 *
 * @internal
 */
export declare const collectAdminOptimizeDepsExclude: (cwd: string, plugins: PluginMeta[]) => Promise<string[]>;
//# sourceMappingURL=admin-vite-optimize-exclude.d.ts.map