/**
 * Copyright © 2019 Johnson & Johnson
 *
 * 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 { Tree, TreeHO } from './type';
/**
 * withDeepValue returns a TreeHO that will change a value deep in the tree that it accepts
 * @param key An array of keys to walk in the Tree.
 * @param value The value to set when you have walk all keys.
 */
export declare const withDeepValue: (key: string | string[], value: string) => (tree: Tree) => Tree;
/**
 * getTreeFromDir returns a promise that will walk a directory and resolve to
 * an TreeHO that describes that directory
 * @param startDir
 */
export declare const getTreeFromDir: (startDir: string) => Promise<TreeHO>;
/**
 * PrePendPath take a path and returns a treeHO that will walk though a passed in Tree
 * and prepend the path to every docuement in the tree.
 * @param prePend
 */
export declare const prependPath: (prePend: string) => (tree: Tree) => Tree;
/**
 * withTree returns a TreeHO that will merge the tree pass to withTree with the Tree
 * passed in to the TreeHO.  The main value is to resolve issue around directory vs files
 * @param newTree
 */
export declare const withTree: (newTree: Tree) => (tree: Tree) => Tree;
/**
 * WithTreeFromFile returns a Promise, that will Read and parse a json file, and resolve to a
 * TreeHO that was described by the Json file.
 * @param filePath
 */
export declare const withTreeFromFile: (filePath: string) => Promise<TreeHO>;
/**
 * getSipmlePaths returns a simple list of paths gathered from a nested tree.
 * @param tree
 */
export declare const getSimplePaths: (tree: Tree) => string[];
/**
 * validatePaths checks whether the passed paths are equal to their native
 * counterparts in the file system.
 * This check is needed when we want to be sure to get the same build results
 * on MacOS (case-insensitive) and Linux (case-sensitive).
 * https://stackoverflow.com/questions/13617863/can-i-force-node-js-require-to-be-case-sensitive
 * @param pathsToDocs
 */
export declare const validatePaths: (pathsToDocs: string[]) => void;
//# sourceMappingURL=tree.d.ts.map