export interface PackageConfig {
    name: string;
    version?: string;
    enforce_version?: boolean;
}
/**
 * A list of package configs, where each entry is either a single package or a
 * group of interchangeable alternatives (e.g. sass / sass-embedded / node-sass).
 */
export type PackagesConfig = Array<PackageConfig | PackageConfig[]>;
export interface PackageRecommendation {
    message: string;
    installCommand: string;
}
declare function ensurePackagesExist(packagesConfig: PackagesConfig, requestedFeature: string): void;
declare function getInstallCommand(packageConfigs: PackageConfig[][]): string;
/**
 * Returns the command to install already-published packages (e.g. a missing
 * dependency required by the user), respecting the package manager in use.
 */
declare function getMissingPackagesInstallCommand(packageNames: string[]): string;
declare function getPackageVersion(packageName: string): string | null;
declare function getMissingPackageRecommendations(packagesConfig: PackagesConfig, requestedFeature?: string | null): PackageRecommendation | undefined;
declare function getInvalidPackageVersionRecommendations(packagesConfig: PackagesConfig): string[];
declare function addPackagesVersionConstraint(packages: PackagesConfig): PackagesConfig;
declare const _default: {
    ensurePackagesExist: typeof ensurePackagesExist;
    getMissingPackageRecommendations: typeof getMissingPackageRecommendations;
    getInvalidPackageVersionRecommendations: typeof getInvalidPackageVersionRecommendations;
    addPackagesVersionConstraint: typeof addPackagesVersionConstraint;
    getInstallCommand: typeof getInstallCommand;
    getMissingPackagesInstallCommand: typeof getMissingPackagesInstallCommand;
    getPackageVersion: typeof getPackageVersion;
};
export default _default;
