import { DispatchablePluginHooks, IGitPlatform, IPackManager, PluginManager } from '../plugins';
import { BaseConfigurationOptions, IConfiguration, RequiredConfigurationOption, VersionBranch } from './configuration';
import { IExecutor } from './executor';
import { Git } from './git';
import { LogReporter } from './log-reporter';
import { IProject } from './workspace-utils';
export interface IApplication {
    readonly cwd: string;
    readonly configuration: IConfiguration;
    readonly branch: VersionBranch;
    readonly project: IProject;
    readonly executor: IExecutor;
    readonly git: Git;
    readonly logger: LogReporter;
    readonly gitPlatform: IGitPlatform;
    readonly packManagers: IPackManager[];
    readonly hooks: DispatchablePluginHooks;
    readonly pluginManager: PluginManager;
}
export type CliOptions = Partial<BaseConfigurationOptions>;
export declare class Application {
    static detectVersionBranch(configOptions: RequiredConfigurationOption, branchName: string): VersionBranch;
    static init(application?: IApplication, cliOptions?: CliOptions): Promise<IApplication>;
}
