import { BaseInstallManager } from '../base/BaseInstallManager';
import type { IInstallManagerOptions } from '../base/BaseInstallManagerTypes';
import type { BaseShrinkwrapFile } from '../base/BaseShrinkwrapFile';
import type { PnpmShrinkwrapFile } from '../pnpm/PnpmShrinkwrapFile';
import type { Subspace } from '../../api/Subspace';
export interface IPnpmModules {
    hoistedDependencies: {
        [dep in string]: {
            [depPath in string]: string;
        };
    };
}
/**
 * This class implements common logic between "rush install" and "rush update".
 */
export declare class WorkspaceInstallManager extends BaseInstallManager {
    /**
     * @override
     */
    doInstallAsync(): Promise<void>;
    /**
     * Regenerates the common/temp/package.json and related workspace files.
     * If shrinkwrapFile is provided, this function also validates whether it contains
     * everything we need to install and returns true if so; in all other cases,
     * the return value is false.
     *
     * @override
     */
    protected prepareCommonTempAsync(subspace: Subspace, shrinkwrapFile: (PnpmShrinkwrapFile & BaseShrinkwrapFile) | undefined): Promise<{
        shrinkwrapIsUpToDate: boolean;
        shrinkwrapWarnings: string[];
    }>;
    protected canSkipInstallAsync(lastModifiedDate: Date, subspace: Subspace, variant: string | undefined): Promise<boolean>;
    /**
     * Runs "pnpm install" in the common folder.
     */
    protected installAsync(cleanInstall: boolean, subspace: Subspace): Promise<void>;
    protected postInstallAsync(subspace: Subspace): Promise<void>;
    /**
     * Used when invoking the NPM tool.  Appends the common configuration options
     * to the command-line.
     */
    protected pushConfigurationArgs(args: string[], options: IInstallManagerOptions, subspace: Subspace): void;
}
//# sourceMappingURL=WorkspaceInstallManager.d.ts.map