/// <reference types="node" />
import { Tree } from "@angular-devkit/schematics/src/tree/interface";
import { Rule, ExecutionOptions } from "@angular-devkit/schematics";
import { Command } from 'ionic/lib/command';
import { CommandLineInputs, CommandLineOptions, INamespace } from 'ionic/definitions';
import { XmlEditor } from '../xml-editor';
export declare function getTsPathConfigFromProject(tree: Tree, projectName?: string): string;
export interface UpdateJsonFn<T> {
    (obj: T): T | void;
}
export declare function updateJsonFile<T>(host: Tree, path: string, callback: UpdateJsonFn<T>): Tree;
export declare function getFileContentFromPath(path: string): Buffer;
export declare function shellCommandSchematic({ command, args }: {
    command: string;
    args: string[];
}): Rule;
export declare function updateXMLFile(tree: Tree, path: string, editFunction: (content: XmlEditor) => void): void;
/**
* Run a schematic from a separate collection.
*
* @param collectionName The name of the collection that contains the schematic to run.
* @param schematicName The name of the schematic to run.
* @param options The options to pass as input to the RuleFactory.
*/
export declare function externalPrivateSchematic<OptionT extends object>(collectionName: string, schematicName: string, options: OptionT, executionOptions?: Partial<ExecutionOptions>): Rule;
export declare function addRouteInConfig(route: any, tree: Tree): void;
export declare function ionicCommandFactory(cmdFactory: (namespace: INamespace) => Command): Promise<{
    executor: import("ionic/lib/executor").Executor;
    cmd: Command;
}>;
export declare function runIonicCommand(cmdFactory: (namespace: INamespace) => Command, cmdinputs?: CommandLineInputs, cmdoptions?: CommandLineOptions): Promise<void>;
/**
 * TODO find another wait
 * does not work...
 */
export declare function refreshTreeFromFile(tree: Tree, file: string): void;
