import { AspectDefinition } from '@teambit/aspect-loader';
import { ComponentDir } from '@teambit/bundler';
import { Component, ComponentID, ResolveAspectsOptions } from '@teambit/component';
import { ProxyConfigArrayItem } from 'webpack-dev-server';
export interface UIRoot extends ComponentDir {
    /**
     * unique name of the ui.
     */
    name: string;
    /**
     * path of the ui root.
     */
    path: string;
    /**
     * name of the UI root config file.
     */
    configFile: string;
    buildOptions?: {
        ssr?: boolean;
        launchBrowserOnStart?: boolean;
        prebundle?: boolean;
    };
    /**
     * resolve aspects in the UI root. (resolve all if componentIds not provided)
     */
    resolveAspects(runtimeName: string, componentIds?: ComponentID[], opts?: ResolveAspectsOptions): Promise<AspectDefinition[]>;
    /**
     * resolve components from a given pattern.
     */
    resolvePattern?(pattern: string): Promise<Component[]>;
    /**
     * listener for when the dev server starts. can be used for running the watcher.
     */
    postStart?(options: PostStartOptions): Promise<void>;
    /**
     * determine whether UI should get a priority.
     */
    priority?: boolean;
}
export declare type ProxyEntry = ProxyConfigArrayItem & {
    context: string[];
};
export declare type PostStartOptions = {
    /**
     * pattern for selecting components in the container.
     */
    pattern?: string;
};
