export interface PackageJSON { dependencies: { [key: string]: string; }; devDependencies: { [key: string]: string; }; resolutions?: { [key: string]: string; }; scripts?: string[]; sideEffects?: boolean | string[]; browserslist?: string | string[]; workspaces?: string[] | { packages?: string[]; nohoist?: string[]; }; } export interface DevYaml { } export interface IsogunHostnameWithProxy { [key: string]: { proxy_to_host_port: number; }; } export declare type IsogunHostnameConfig = IsogunHostnameWithProxy | string; export interface IsogunYaml { hostnames?: IsogunHostnameConfig[]; } export interface DependencyInfo { has(dependency: string): boolean; get(dependency: string): string; } export declare class Gemfile { private readonly contents; constructor(contents: string); hasDependency(gemName: string): boolean; } export declare class Project { gemfile: Gemfile | false; private readonly packageJSON; private readonly dependencies; private readonly devYaml; private readonly isogunYaml; hasPostCSSConfig: boolean; readonly hasProcfile: boolean; readonly hasServiceWorker: boolean; readonly hasBrowsersListRc: boolean; get isRails(): boolean; get isNode(): boolean; get usesDev(): boolean; get usesTypeScript(): boolean; get hasNodeServer(): boolean; get usesRailsWithNodeServer(): boolean; get usesReact(): boolean; get usesPreact(): boolean; get usesPreactCompat(): boolean; get usesQuiltRailsGem(): boolean; get devType(): unknown; get devYamlPort(): unknown; get devProxyHosts(): { host: string; port: number; }[]; get devPort(): number | undefined; get devProxyHost(): string | undefined; constructor(gemfile: Gemfile | false, packageJSON: PackageJSON, dependencies: DependencyInfo, devYaml: DevYaml | false, isogunYaml: IsogunYaml | false, hasPostCSSConfig: boolean, hasProcfile?: boolean, hasServiceWorker?: boolean, hasBrowsersListRc?: boolean); uses(dependency: string, versionCondition?: RegExp): boolean; version(dependency: string): string; hasWorkspacePackages(): true | string[] | undefined; hasBrowsersList(): boolean; hasSideEffect(): boolean; hasScript(name: string): boolean; hasDependency(dependency: string, versionCondition?: RegExp): boolean; lacksDependency(dependency: string, versionCondition?: RegExp): boolean; hasDevDependency(dependency: string, versionCondition?: RegExp): boolean; hasResolution(name: string): boolean; get hasDevDependencies(): number; getPropertyConfig(prop: string): { [key: string]: string; } | undefined; hasGem(name: string): boolean; private getDevKey; private getIsogunKey; } export default function loadProject(root: string): Promise; //# sourceMappingURL=project.d.ts.map