import type { Tree } from '@nrwl/devkit';
import type { SetRequired } from 'type-fest';
import type { BaseOptions, MeshConfigExtensions } from '../schema';
import { getWorkspaceLayout } from '@nrwl/devkit';
import type { ExampleName } from '../../utils/create-mesh-example';
export interface NormalizedOptions extends SetRequired<Omit<BaseOptions, 'meshConfig' | 'tags'>, 'compiler' | 'directory' | 'e2eTestRunner' | 'example' | 'projectType' | 'unitTestRunner'> {
    /**
     * The path to the project directory
     */
    projectDirectory: string;
    /**
     * The path to the project dist directory
     */
    projectDistDirectory: string;
    projectE2eDirectory?: string;
    projectMeshDirectory: string;
    /**
     * Is the project an app?
     */
    isApp: boolean;
    /**
     * Is the project a library?
     */
    isLibrary: boolean;
    /**
     * Is Cypress the selected E2E runner?
     */
    isCypress: boolean;
    /**
     * Is Jest the selected Unit test runner?
     */
    isJest: boolean;
    /**
     * The Mesh config file extension
     */
    meshConfigExt: MeshConfigExtensions;
    example: ExampleName;
    workspace: ReturnType<typeof getWorkspaceLayout>;
    projectParentDirectory?: string;
    projectName: string;
    e2eProjectName: string;
    tags: string[];
    isSwc: boolean;
    offsetFromRoot: string;
    rootTsConfigPath: string;
    _raw: BaseOptions;
}
export declare function normalizeOptions(tree: Tree, options: BaseOptions): NormalizedOptions;
