import { DockerRunCommandType } from '../../model/type/docker.type' ; /**
 * Infra return type when direct use docker
 */ export interface DockerResultType { statusCode ? : number ; stdout : string ; } /**
 * Infra return type when use agent or custom infra
 */ export interface InfraResultType { uuid : string ; } export type InfraRunnerResultType = DockerResultType | InfraResultType ; export interface InfraRunner < T > { runCommand ( payload ) : Promise < T > ; upInBackground ( dockerComposeFile ) : Promise < T > ; downAndRemoveVolumes ( dockerComposeFile ) : Promise < T > ; restart ( dockerComposeFile , service ) : Promise < T > ; } export class InfraStrategy { public static createDockerRunner ( infraRunner ) { return infraRunner ; } public static createRunner ( infraRunner ) { return infraRunner ; } }