import type { IRushPlugin } from '@rushstack/rush-sdk'; import type { RushConfiguration } from '@rushstack/rush-sdk'; import type { RushSession } from '@rushstack/rush-sdk'; declare interface IBaseRoutingRuleJson { servePath: string; immutable?: boolean; } declare interface IGlobalRoutingFileRuleJson extends IBaseRoutingRuleJson { workspaceRelativeFile: string; workspaceRelativeFolder: undefined; } declare interface IGlobalRoutingFolderRuleJson extends IBaseRoutingRuleJson { workspaceRelativeFile: undefined; workspaceRelativeFolder: string; } declare type IGlobalRoutingRuleJson = IGlobalRoutingFileRuleJson | IGlobalRoutingFolderRuleJson; declare interface IRushServePluginOptions { /** * The names of phased commands to which the plugin should be applied. */ phasedCommands: ReadonlyArray; /** * The URL path at which to host the web socket connection for monitoring build status. If not specified, the web socket interface will not be enabled. */ buildStatusWebSocketPath?: string; /** * The name of a parameter that Rush is configured to use to pass a port number to underlying operations. * If specified, the plugin will ensure the value is synchronized with the port used for its server. */ portParameterLongName?: string | undefined; /** * The URL path at which to host Rush log files. If not specified, log files will not be served. */ logServePath?: string | undefined; /** * Routing rules for files that are associated with the entire workspace, rather than a single project (e.g. files output by Rush plugins). */ globalRouting?: IGlobalRoutingRuleJson[]; } /** * @public */ declare class RushServePlugin implements IRushPlugin { #private; readonly pluginName: 'RushServePlugin'; constructor(options: IRushServePluginOptions); apply(rushSession: RushSession, rushConfiguration: RushConfiguration): void; } export { RushServePlugin } export default RushServePlugin; export { }