/** * Copyright 2017 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import * as fs from 'fs'; import * as ncp from 'ncp'; export declare const readFilep: typeof fs.readFile.__promisify__; export declare const ncpp: (source: string, destination: string, options?: ncp.Options) => Promise; export interface Bag { [script: string]: T; } export interface DefaultPackage extends Bag { gts: string; typescript: string; '@types/node': string; } export declare function readJsonp(jsonPath: string): Promise; export interface ReadFileP { (path: string, encoding: string): Promise; } export declare function nop(): void; /** * An interface containing the top level data fields present in Config Files */ export interface ConfigFile { files?: string[]; compilerOptions?: {}; include?: string[]; exclude?: string[]; extends?: string[]; } /** * Automatically defines npm or yarn is going to be used: * - If only yarn.lock exists, use yarn * - If only package-lock.json or both exist, use npm */ export declare function isYarnUsed(existsSync?: typeof fs.existsSync): boolean; export declare function getPkgManagerCommand(isYarnUsed?: boolean): string; /** * Find the tsconfig.json, read it, and return parsed contents. * @param rootDir Directory where the tsconfig.json should be found. * If the tsconfig.json file has an "extends" field hop down the dependency tree * until it ends or a circular reference is found in which case an error will be * thrown */ export declare function getTSConfig(rootDir: string, customReadFilep?: ReadFileP): Promise;