export type PackageManager = 'npm' | 'yarn' | 'pnpm';
export interface PackageManagerInfo {
    name: PackageManager;
    installCommand: string;
    installArgs: string[];
    lockFile: string;
}
export interface InstallResult {
    success: boolean;
    duration: number;
    output: string;
    error?: string;
}
export interface PackageManagerValidationResult {
    valid: boolean;
    missingPackages: string[];
}
/**
 * Service for detecting and managing package managers
 */
export declare class PackageManagerService {
    private static readonly PACKAGE_MANAGERS;
    /**
     * Detect package manager from lock files in directory
     * Priority order: pnpm > yarn > npm
     */
    detectPackageManager(projectDir: string): PackageManager;
    /**
     * Get package manager info
     */
    getPackageManagerInfo(manager: PackageManager): PackageManagerInfo;
    /**
     * Install dependencies in a directory
     *
     * @param projectDir - Directory containing package.json
     * @param manager - Package manager to use
     * @param onProgress - Optional callback for progress updates
     * @returns Installation result with success status and output
     */
    installDependencies(projectDir: string, manager: PackageManager, onProgress?: (message: string) => void): Promise<InstallResult>;
    /**
     * Verify dependencies are installed
     *
     * @param projectDir - Directory containing node_modules
     * @param requiredPackages - List of package names to verify
     * @returns Validation result with list of missing packages
     */
    verifyInstallation(projectDir: string, requiredPackages: string[]): Promise<PackageManagerValidationResult>;
}
