import Command from '../base';
import { OpCommand, OpsYml, OpWorkflow, RegistryAuth, Config } from './../types';
import { OpPipeline } from './../types/OpsYml';
export default class Publish extends Command {
    static description: string;
    static flags: {
        help: import("@oclif/parser/lib/flags").IBooleanFlag<void>;
    };
    static args: {
        name: string;
        description: string;
        required: boolean;
    }[];
    resolvePath: (opPath: string) => string;
    checkDocker: () => Promise<void>;
    getOpsAndWorkflows: (opPath: string) => Promise<OpsYml>;
    convertPipelinesToWorkflows: (pipelines: OpPipeline[]) => {
        pipelineWorkflows: OpWorkflow[];
        pipelineCommands: OpCommand[];
    };
    choosePublishKind: (commands: OpCommand[], pipelines: OpPipeline[]) => Promise<string>;
    selectOpsAndWorkflows: (commandsOrPipelines: string, commands: OpCommand[], workflows: OpWorkflow[]) => Promise<{
        selectedCommands: OpCommand[];
        selectedWorkflows: never[];
    } | {
        selectedCommands: never[];
        selectedWorkflows: OpWorkflow[];
    }>;
    selectOps: (ops: OpCommand[]) => Promise<OpCommand[]>;
    selectWorkflows: (workflows: OpWorkflow[]) => Promise<OpWorkflow[]>;
    checkForExistingVersion: (name: string, version: string) => Promise<boolean>;
    ensureAvailableVersions: (opPath: string, commandsOrPipelines: string, commands: OpCommand[], workflows: OpWorkflow[]) => Promise<{
        commands: OpCommand[];
        workflows: OpWorkflow[];
    }>;
    getRegistryAuth: (name: string, version: string) => Promise<RegistryAuth>;
    pipelineCommandsPublishLoop: (pipelineCommands: OpCommand[], version: string, config: Config) => Promise<void>;
    opsPublishLoop: (opCommands: OpCommand[], version: string, config: Config) => Promise<void>;
    workflowsPublishLoop: (opWorkflows: OpWorkflow[], version: string, config: Config) => Promise<void>;
    sendAnalytics: (publishType: string, opOrWorkflow: OpCommand | OpWorkflow, config: Config) => void;
    _validateDescription(input: string): true | "You need to provide a publish description of your op before continuing";
    run(): Promise<void>;
}
