/**
 * Constants used by the Rush tool.
 * @beta
 *
 * @remarks
 *
 * These are NOT part of the public API surface for rush-lib.
 * The rationale is that we don't want people implementing custom parsers for
 * the Rush config files; instead, they should rely on the official APIs from rush-lib.
 */
export declare class RushConstants {
    /**
     * The filename ("rush.json") for the root-level configuration file.
     */
    static readonly rushJsonFilename: 'rush.json';
    /**
     * The filename ("browser-approved-packages.json") for an optional policy configuration file
     * that stores a list of NPM packages that have been approved for usage by Rush projects.
     * This is part of a pair of config files, one for projects that run in a web browser
     * (e.g. whose approval criteria mostly focuses on licensing and code size), and one for everywhere else
     * (e.g. tooling projects whose approval criteria mostly focuses on avoiding node_modules sprawl).
     */
    static readonly browserApprovedPackagesFilename: 'browser-approved-packages.json';
    /**
     * The folder name ("changes") where change files will be stored.
     */
    static readonly changeFilesFolderName: 'changes';
    /**
     * The filename ("nonbrowser-approved-packages.json") for an optional policy configuration file
     * that stores a list of NPM packages that have been approved for usage by Rush projects.
     * This is part of a pair of config files, one for projects that run in a web browser
     * (e.g. whose approval criteria mostly focuses on licensing and code size), and one for everywhere else
     * (e.g. tooling projects whose approval criteria mostly focuses on avoiding node_modules sprawl).
     */
    static readonly nonbrowserApprovedPackagesFilename: 'nonbrowser-approved-packages.json';
    /**
     * The folder name ("common") where Rush's common data will be stored.
     */
    static readonly commonFolderName: 'common';
    /**
     * The NPM scope ("\@rush-temp") that is used for Rush's temporary projects.
     */
    static readonly rushTempNpmScope: '@rush-temp';
    /**
     * The folder name ("variants") under which named variant configurations for
     * alternate dependency sets may be found.
     * Example: `C:\MyRepo\common\config\rush\variants`
     */
    static readonly rushVariantsFolderName: 'variants';
    /**
     * The folder name ("temp") under the common folder, or under the .rush folder in each project's directory where
     * temporary files will be stored.
     * Example: `C:\MyRepo\common\temp`
     */
    static readonly rushTempFolderName: 'temp';
    /**
     * The folder name ("projects") where temporary projects will be stored.
     * Example: `C:\MyRepo\common\temp\projects`
     */
    static readonly rushTempProjectsFolderName: 'projects';
    /**
     * The filename ("npm-shrinkwrap.json") used to store an installation plan for the NPM package manger.
     */
    static readonly npmShrinkwrapFilename: 'npm-shrinkwrap.json';
    /**
     * Number of installation attempts
     */
    static readonly defaultMaxInstallAttempts: 1;
    /**
     * The filename ("pnpm-lock.yaml") used to store an installation plan for the PNPM package manger
     * (PNPM version 3.x and later).
     */
    static readonly pnpmV3ShrinkwrapFilename: 'pnpm-lock.yaml';
    /**
     * The filename ("pnpmfile.js") used to add custom configuration to PNPM (PNPM version 1.x and later).
     */
    static readonly pnpmfileV1Filename: 'pnpmfile.js';
    /**
     * The filename (".pnpmfile.cjs") used to add custom configuration to PNPM (PNPM version 6.x and later).
     */
    static readonly pnpmfileV6Filename: '.pnpmfile.cjs';
    /**
     * The filename (".modules.yaml") used by pnpm to specify configurations in the node_modules directory
     */
    static readonly pnpmModulesFilename: '.modules.yaml';
    /**
     * The folder name (".pnpm") used by pnpm to store the code of the dependencies for this subspace
     */
    static readonly pnpmVirtualStoreFolderName: '.pnpm';
    /**
     * The filename ("global-pnpmfile.cjs") used to add custom configuration to subspaces
     */
    static readonly pnpmfileGlobalFilename: 'global-pnpmfile.cjs';
    /**
     * The folder name used to store patch files for pnpm
     * Example: `C:\MyRepo\common\config\pnpm-patches`
     * Example: `C:\MyRepo\common\temp\patches`
     */
    static readonly pnpmPatchesFolderName: 'patches';
    /**
     * The folder name under `/common/temp` used to store checked-in patches.
     * Example: `C:\MyRepo\common\pnpm-patches`
     */
    static readonly pnpmPatchesCommonFolderName: `pnpm-patches`;
    /**
     * The filename ("shrinkwrap.yaml") used to store state for pnpm
     */
    static readonly yarnShrinkwrapFilename: 'yarn.lock';
    /**
     * The folder name ("node_modules") where NPM installs its packages.
     */
    static readonly nodeModulesFolderName: 'node_modules';
    /**
     * The filename ("pinned-versions.json") for an old configuration file that
     * that is no longer supported.
     *
     * @deprecated This feature has been superseded by the "preferredVersions" setting
     * in common-versions.json
     */
    static readonly pinnedVersionsFilename: 'pinned-versions.json';
    /**
     * The filename ("common-versions.json") for an optional configuration file
     * that stores dependency version information that affects all projects in the repo.
     * This configuration file should go in the "common/config/rush" folder.
     */
    static readonly commonVersionsFilename: 'common-versions.json';
    /**
     * The filename ("repo-state.json") for a file used by Rush to
     * store the state of various features as they stand in the repo.
     */
    static readonly repoStateFilename: 'repo-state.json';
    /**
     * The filename ("custom-tips.json") for the file used by Rush to
     * print user-customized messages.
     * This configuration file should go in the "common/config/rush" folder.
     */
    static readonly customTipsFilename: 'custom-tips.json';
    /**
     * The name of the per-project folder where project-specific Rush files are stored. For example,
     * the package-deps files, which are used by commands to determine if a particular project needs to be rebuilt.
     */
    static readonly projectRushFolderName: '.rush';
    /**
     * Custom command line configuration file, which is used by rush for implementing
     * custom command and options.
     */
    static readonly commandLineFilename: 'command-line.json';
    static readonly versionPoliciesFilename: 'version-policies.json';
    /**
     * Experiments configuration file.
     */
    static readonly experimentsFilename: 'experiments.json';
    /**
     * Pnpm configuration file
     */
    static readonly pnpmConfigFilename: 'pnpm-config.json';
    /**
     * Rush plugins configuration file name.
     */
    static readonly rushPluginsConfigFilename: 'rush-plugins.json';
    /**
     * Rush plugin manifest file name.
     */
    static readonly rushPluginManifestFilename: 'rush-plugin-manifest.json';
    /**
     * The artifactory.json configuration file name.
     */
    static readonly artifactoryFilename: 'artifactory.json';
    /**
     * The subspaces.json configuration file name
     */
    static readonly subspacesConfigFilename: 'subspaces.json';
    /**
     * The name of the default subspace if one isn't specified but subspaces is enabled.
     */
    static readonly defaultSubspaceName: 'default';
    /**
     * Build cache configuration file.
     */
    static readonly buildCacheFilename: 'build-cache.json';
    /**
     * Build cache version number, incremented when the logic to create cache entries changes.
     * Changing this ensures that cache entries generated by an old version will no longer register as a cache hit.
     */
    static readonly buildCacheVersion: 1;
    /**
     * Cobuild configuration file.
     */
    static readonly cobuildFilename: 'cobuild.json';
    /**
     * Per-project configuration filename.
     */
    static readonly rushProjectConfigFilename: 'rush-project.json';
    /**
     * The URL ("http://rushjs.io") for the Rush web site.
     */
    static readonly rushWebSiteUrl: 'https://rushjs.io';
    /**
     * The name of the NPM package for the Rush tool ("\@microsoft/rush").
     */
    static readonly rushPackageName: '@microsoft/rush';
    /**
     * The folder name ("rush-recycler") where Rush moves large folder trees
     * before asynchronously deleting them.
     */
    static readonly rushRecyclerFolderName: 'rush-recycler';
    /**
     * The name of the file to drop in project-folder/.rush/temp/ containing a listing of the project's direct
     * and indirect dependencies. This is used to detect if a project's dependencies have changed since the last build.
     */
    static readonly projectShrinkwrapFilename: 'shrinkwrap-deps.json';
    /**
     * The value of the "commandKind" property for a bulk command in command-line.json
     */
    static readonly bulkCommandKind: 'bulk';
    /**
     * The value of the "commandKind" property for a global command in command-line.json
     */
    static readonly globalCommandKind: 'global';
    /**
     * The value of the "commandKind" property for a phased command in command-line.json
     */
    static readonly phasedCommandKind: 'phased';
    /**
     * The name of the incremental build command.
     */
    static readonly buildCommandName: 'build';
    /**
     * The name of the non-incremental build command.
     */
    static readonly rebuildCommandName: 'rebuild';
    static readonly updateCloudCredentialsCommandName: 'update-cloud-credentials';
    /**
     * When a hash generated that contains multiple input segments, this character may be used
     * to separate them to avoid issues like
     * crypto.createHash('sha1').update('a').update('bc').digest('hex') === crypto.createHash('sha1').update('ab').update('c').digest('hex')
     */
    static readonly hashDelimiter: '|';
    /**
     * The name of the per-user Rush configuration data folder.
     */
    static readonly rushUserConfigurationFolderName: '.rush-user';
    /**
     * The name of the project `rush-logs` folder.
     */
    static readonly rushLogsFolderName: 'rush-logs';
    /**
     * The expected prefix for phase names in "common/config/rush/command-line.json"
     */
    static readonly phaseNamePrefix: '_phase:';
    /**
     * The default debounce value for Rush multi-project watch mode. When watching, controls
     * how long to wait after the last encountered file system event before execution. If another
     * file system event occurs in this interval, the timeout will reset.
     */
    static readonly defaultWatchDebounceMs: 1000;
    /**
     * The name of the parameter that can be used to bypass policies.
     */
    static readonly bypassPolicyFlagLongName: '--bypass-policy';
    /**
     * Merge Queue ignore configuration file.
     */
    static readonly mergeQueueIgnoreFileName: '.mergequeueignore';
    /**
     * The filename ("project-impact-graph.yaml") for the project impact graph file.
     */
    static readonly projectImpactGraphFilename: 'project-impact-graph.yaml';
    /**
     * The filename for the last link flag
     */
    static readonly lastLinkFlagFilename: 'last-link';
    /**
     * The filename for the Rush alerts config file.
     */
    static readonly rushAlertsConfigFilename: 'rush-alerts.json';
    /**
     * The filename for the file that tracks which variant is currently installed.
     */
    static readonly currentVariantsFilename: 'current-variants.json';
    /**
     * The filename ("rush-hotlink-state.json") used to store information about packages connected via
     * "rush link-package" and "rush bridge-package" commands.
     */
    static readonly rushHotlinkStateFilename: 'rush-hotlink-state.json';
    /**
     * The filename ("pnpm-sync.json") used to store the state of the pnpm sync command.
     */
    static readonly pnpmSyncFilename: '.pnpm-sync.json';
}
//# sourceMappingURL=RushConstants.d.ts.map