import { type Config } from '@pnpm/config';
import { type LogBase } from '@pnpm/logger';
import { type StoreController } from '@pnpm/store-controller-types';
import { type Registries } from '@pnpm/types';
export type StrictRebuildOptions = {
    autoInstallPeers: boolean;
    cacheDir: string;
    childConcurrency: number;
    excludeLinksFromLockfile: boolean;
    extraBinPaths: string[];
    extraEnv: Record<string, string>;
    lockfileDir: string;
    nodeLinker: 'isolated' | 'hoisted' | 'pnp';
    preferSymlinkedExecutables?: boolean;
    scriptShell?: string;
    sideEffectsCacheRead: boolean;
    sideEffectsCacheWrite: boolean;
    scriptsPrependNodePath: boolean | 'warn-only';
    shellEmulator: boolean;
    skipIfHasSideEffectsCache?: boolean;
    storeDir: string;
    storeController: StoreController;
    force: boolean;
    useLockfile: boolean;
    registries: Registries;
    dir: string;
    pnpmHomeDir: string;
    reporter: (logObj: LogBase) => void;
    production: boolean;
    development: boolean;
    optional: boolean;
    rawConfig: object;
    userConfig: Record<string, string>;
    userAgent: string;
    packageManager: {
        name: string;
        version: string;
    };
    unsafePerm: boolean;
    pending: boolean;
    shamefullyHoist: boolean;
    deployAllFiles: boolean;
    neverBuiltDependencies?: string[];
    onlyBuiltDependencies?: string[];
    virtualStoreDirMaxLength: number;
    peersSuffixMaxLength: number;
    strictStorePkgContentCheck: boolean;
    fetchFullMetadata?: boolean;
} & Pick<Config, 'sslConfigs' | 'onlyBuiltDependencies' | 'onlyBuiltDependenciesFile' | 'neverBuiltDependencies'>;
export type RebuildOptions = Partial<StrictRebuildOptions> & Pick<StrictRebuildOptions, 'storeDir' | 'storeController'> & Pick<Config, 'rootProjectManifest' | 'rootProjectManifestDir'>;
export declare function extendRebuildOptions(opts: RebuildOptions): Promise<StrictRebuildOptions>;
