import { ConnectionOptions } from '@sprucelabs/mercury-client';
import { HealthCheckResults } from '@sprucelabs/spruce-skill-utils';
import ActionExecuter from '../features/ActionExecuter';
import FeatureCommandAttacher from '../features/FeatureCommandAttacher';
import { FeatureCode, InstallFeatureOptions } from '../features/features.types';
import { GlobalEmitter } from '../GlobalEmitter';
import ServiceFactory from '../services/ServiceFactory';
import { ApiClientFactory } from '../types/apiClient.types';
import { CliBootOptions, CliInterface, HealthOptions } from '../types/cli.types';
export default class Cli implements CliInterface {
    private cwd;
    private featureInstaller;
    private serviceFactory;
    readonly emitter: GlobalEmitter;
    private static apiClients;
    private attacher?;
    private actionExecuter?;
    private constructor();
    static resetApiClients(): Promise<void>;
    getAttacher(): FeatureCommandAttacher | undefined;
    getActionExecuter(): ActionExecuter | undefined;
    on(...args: any[]): Promise<void>;
    off(...args: any[]): Promise<number>;
    emit(...args: any[]): Promise<import("@sprucelabs/mercury-types").MercuryAggregateResponse<Pick<import("@sprucelabs/schema").SchemaStaticValues<any, false, string, import("@sprucelabs/schema").StaticSchemaAllValues<any, false>>, string>>>;
    emitAndFlattenResponses(...args: any[]): Promise<Pick<import("@sprucelabs/schema").SchemaStaticValues<any, false, string, import("@sprucelabs/schema").StaticSchemaAllValues<any, false>>, string>[]>;
    installFeatures(options: InstallFeatureOptions): Promise<import("../features/features.types").FeatureInstallResponse>;
    getFeature<C extends FeatureCode>(code: C): import("../features/features.types").FeatureMap[C];
    checkHealth(options?: HealthOptions): Promise<HealthCheckResults>;
    static Boot(options?: CliBootOptions): Promise<CliInterface>;
    private static loadCommandBlocks;
    private static loadOptionOverrides;
    static buildApiClientFactory(cwd: string, serviceFactory: ServiceFactory, bootOptions?: CliBootOptions & ConnectionOptions): ApiClientFactory;
    private static connectToApi;
}
