import { workspaces } from '@angular-devkit/core';
import { Tree } from '@angular-devkit/schematics';
/**
 * Returns project configuration of a project with a given name (or the default
 * project).
 * @param host Source tree.
 * @param projectName Name of the project to get.
 * @returns Project configuration.
 */
export declare function getProject(host: Tree, projectName?: string): Promise<workspaces.ProjectDefinition>;
/**
 * Updates the project configuration of a project with a given name (or the
 * default project).
 * @param host Source tree.
 * @param projectConfig Updated project configuration.
 * @param projectName Name of the project to update.
 */
export declare function updateProject(host: Tree, projectConfig: workspaces.ProjectDefinition, projectName?: string): void;
/**
 * Looks for the main TypeScript file in the given project and returns its path.
 * @param project Project for which to fetch the main file path.
 * @returns Main file path.
 */
export declare function getProjectMainFilePath(project: workspaces.ProjectDefinition): string;
/**
 * Resolves the target options for the build target of the given project.
 * @param project Project for which to fetch target options.
 * @param buildTarget Target for which to fetch options.
 * @returns Target options.
 */
export declare function getProjectTargetOptions(project: workspaces.ProjectDefinition, buildTarget: string): Record<string, any>;
/**
 * Returns the options of a given schematic in a given project.
 * @param host Source tree.
 * @param projectName Name of the project from where to get the schematic
 * options.
 * @param schematic Schematic name, e.g. `package-name:schematic-name`.
 * @returns Schematic options or `undefined` if no options have been defined for
 * the specified schematic.
 */
export declare function getProjectSchematicOptions(host: Tree, projectName: string, schematic: string): Promise<Record<string, any> | undefined>;
/**
 * Sets the options for a given schematic for a given project.
 * @param host Source tree.
 * @param projectName Name of the project on which to set the schematic options.
 * @param schematic Schematic name, e.g. `package-name:schematic-name`.
 * @param options Options to set.
 * @param overwrite Whether to overwrite schematic options (the default
 * behaviour is to merge them with the existing options).
 */
export declare function setProjectSchematicOptions(host: Tree, projectName: string, schematic: string, options: Record<string, any>, overwrite?: boolean): Promise<void>;
