import { CommanderStatic } from 'commander';
import PkgService from '../services/PkgService';
import { GraphicsInterface } from '../types/cli.types';
import AbstractFeature from './AbstractFeature';
import ActionExecuter from './ActionExecuter';
import { FeatureAction, FeatureActionResponse } from './features.types';
export default class FeatureCommandAttacher {
    private program;
    private ui;
    private actionExecuter;
    private pkg;
    constructor(options: {
        program: CommanderStatic['program'];
        ui: GraphicsInterface;
        actionExecuter: ActionExecuter;
        pkgService: PkgService;
    });
    attachFeature(feature: AbstractFeature): Promise<void>;
    private attachCode;
    protected clearAndRenderResults(options: ClearResultsAndRenderResultsOptions): void;
    private clearAndRenderMasthead;
    private attachOptions;
}
export type OptionOverrides = Record<string, Record<string, any>>;
export type BlockedCommands = Record<string, string>;
export interface ClearResultsAndRenderResultsOptions {
    namespace?: string;
    featureCode: string;
    actionCode: string;
    totalTime: number;
    action: FeatureAction;
    results: FeatureActionResponse;
}
