export interface PackageJSON { dependencies: { [key: string]: string; }; devDependencies: { [key: string]: string; }; } export interface DevYaml { } export interface RailgunHostnameWithProxy { [key: string]: { proxy_to_host_port: number; }; } export declare type RailgunHostnameConfig = RailgunHostnameWithProxy | string; export interface RailgunYaml { hostnames?: RailgunHostnameConfig[]; } export interface DependencyInfo { has(dependency: string): boolean; get(dependency: string): string; } export declare class Gemfile { private contents; constructor(contents: string); hasDependency(gemName: string): boolean; } export declare class Project { gemfile: Gemfile | false; private packageJSON; private dependencies; private devYaml; private railgunYaml; hasPostCSSConfig: boolean; readonly hasProcfile: boolean; readonly hasServiceWorker: boolean; readonly isRails: boolean; readonly isNode: boolean; readonly usesDev: boolean; readonly usesTypeScript: boolean; readonly usesPolaris: boolean; readonly usesReact: boolean; readonly usesPreact: boolean; readonly usesPreactCompat: boolean; readonly devType: unknown; readonly devYamlPort: unknown; readonly devProxyHosts: { host: string; port: number; }[]; readonly devPort: number | undefined; constructor(gemfile: Gemfile | false, packageJSON: PackageJSON, dependencies: DependencyInfo, devYaml: DevYaml | false, railgunYaml: RailgunYaml | false, hasPostCSSConfig: boolean, hasProcfile?: boolean, hasServiceWorker?: boolean); uses(dependency: string, versionCondition?: RegExp): boolean; version(dependency: string): string; hasDependency(dependency: string, versionCondition?: RegExp): boolean; hasDevDependency(dependency: string, versionCondition?: RegExp): boolean; readonly hasDevDependencies: number; hasGem(name: string): boolean; private getDevKey; private getRailgunKey; } export default function loadProject(root: string): Promise; //# sourceMappingURL=project.d.ts.map