import BaseGenerator from '../base/index.js';
import type { TaskTypes } from '../../lib/types/base/tasks.js';
import type { Entity } from '../../lib/types/application/entity.js';
import type { ApplicationType } from '../../lib/types/application/application.js';
type WorkspacesTypes<E extends Entity = Entity, A extends ApplicationType<E> = ApplicationType<E>> = TaskTypes & {
    LoadingTaskParam: TaskTypes['LoadingTaskParam'] & {
        applications: A[];
    };
    PreparingTaskParam: TaskTypes['PreparingTaskParam'] & {
        applications: A[];
    };
    PostPreparingTaskParam: TaskTypes['PostPreparingTaskParam'] & {
        applications: A[];
    };
    DefaultTaskParam: TaskTypes['DefaultTaskParam'] & {
        applications: A[];
    };
    WritingTaskParam: TaskTypes['WritingTaskParam'] & {
        applications: A[];
    };
    PostWritingTaskParam: TaskTypes['PostWritingTaskParam'] & {
        applications: A[];
    };
    InstallTaskParam: TaskTypes['InstallTaskParam'] & {
        applications: A[];
    };
    PostInstallTaskParam: TaskTypes['PostInstallTaskParam'] & {
        applications: A[];
    };
    EndTaskParam: TaskTypes['EndTaskParam'] & {
        applications: A[];
    };
};
export default abstract class BaseWorkspacesGenerator extends BaseGenerator<WorkspacesTypes> {
    static PROMPTING_WORKSPACES: string;
    static CONFIGURING_WORKSPACES: string;
    static LOADING_WORKSPACES: string;
    static PREPARING_WORKSPACES: string;
    appsFolders?: string[];
    directoryPath: string;
    constructor(args: any, options: any, features: any);
    protected loadWorkspacesConfig(opts?: any): void;
    protected configureWorkspacesConfig(): void;
    protected askForWorkspacesConfig(): Promise<void>;
    protected findApplicationFolders(directoryPath?: string): Promise<string[]>;
    private resolveApplicationFolders;
    bootstrapApplications(): Promise<void>;
    getArgsForPriority(priorityName: string): any;
}
export {};
