import { COMMAND_TYPE, WORKFLOW_TYPE, GLUECODE_TYPE, JOB_TYPE, SERVICE_TYPE } from '../constants/opConfig';
export interface OpsYml {
    version: string;
    ops: OpCommand[];
    pipelines: OpPipeline[];
    workflows: OpWorkflow[];
    services: OpService[];
}
export declare function instanceOfOpWorkflow(object: any): object is OpWorkflow;
export interface OpBase {
    name: string;
    version: string;
}
export interface OpCommand extends BaseFields {
    type: COMMAND_TYPE | GLUECODE_TYPE | JOB_TYPE | SERVICE_TYPE;
    run: string;
    sdk?: string;
    bind: string[];
    network?: string;
    src: string[];
    mountCwd: boolean;
    mountHome: boolean;
    port: string[];
    image: string | void;
}
export declare function instanceOfOpPipeline(object: any): object is OpPipeline;
export interface OpPipeline {
    version: string;
    name: string;
    jobs: OpJob[];
    id: string;
    description: string;
    teamName: string;
}
export interface OpJob {
    packages: string[];
    name: string;
    sdk?: string;
    version: string;
    description: string;
    steps: string[];
}
export interface OpService {
    type: SERVICE_TYPE;
    name: string;
    version: string;
    description: string;
    port: number;
    run: string;
}
export declare const convertServicesToOps: (services: OpService[]) => OpCommand[];
export interface OpWorkflow extends BaseFields {
    type: WORKFLOW_TYPE;
    remote: boolean;
    steps: string[];
}
interface BaseFields {
    name: string;
    version: string;
    platformVersion: string;
    description: string;
    publishDescription?: string;
    env: string[];
    runId: string;
    opsHome: string;
    configDir: string;
    stateDir: string;
    localStateDir: string;
    teamID?: string;
    teamName: string;
    help: {
        usage: string;
        arguments: {
            [key: string]: string;
        };
        options: {
            [key: string]: string;
        };
    };
    isPublic: boolean;
    isPublished?: boolean;
    id: string;
    createdAt: string;
    updatedAt: string;
    local?: boolean;
}
export {};
