import 'reflect-metadata'; import { Command } from '@oclif/command'; import { GitBranch } from '../models'; export default abstract class extends Command { protected localBranches: string[]; protected remoteBranches: string[]; protected branchesList: GitBranch[]; searchRemoteBranches: (answers: string[], input: string) => Promise; searchLocalBranches: (_answers: string[], input: string) => Promise; runHelper(): Promise; abstract getSelectedBranch(): Promise; abstract preformBranchOperation(branchInfo: BranchNamePairStructure): Promise; protected getName: (branch: GitBranch) => string; protected getType: (branch: GitBranch) => string; protected requireRemoteBranches(): boolean; } export interface BranchNamePairStructure { branchNameA: string; branchNameB: string; }