import { THerdSectionDeclaration } from "../deployment-types"; import { getDockerRegistryClientsFromConfig, imageLabelsLoader } from "@shepherdorg/docker-image-metadata-loader"; import { IConfigureUpstreamDeployment } from "../triggered-deployment/create-upstream-trigger-deployment-config"; import { TFileSystemPath } from "../helpers/basic-types"; import { IPlanFolderDeployments } from "./folder-loader/create-folder-deployment-planner"; import { IDeploymentPlan, IDeploymentPlanFactory } from "../deployment-plan/deployment-plan"; import { IReleaseStateStore } from "@shepherdorg/state-store"; import { IDeploymentOrchestration } from "../deployment-orchestration/deployment-orchestration"; import { ILog } from "@shepherdorg/logger"; import { FExec } from "@shepherdorg/ts-exec"; export declare type TDockerMetadataLoader = { imageLabelsLoader: typeof imageLabelsLoader; getDockerRegistryClientsFromConfig: typeof getDockerRegistryClientsFromConfig; }; export declare type THerdLoaderDependencies = { deploymentOrchestration: IDeploymentOrchestration; planFactory: IDeploymentPlanFactory; logger: ILog; featureDeploymentConfig: IConfigureUpstreamDeployment; exec: FExec; labelsLoader: TDockerMetadataLoader; stateStore: IReleaseStateStore; folderLoader: IPlanFolderDeployments; }; export declare type FHerdDeclarationLoader = (herdSectionDeclaration: THerdSectionDeclaration, arg: any, imagesPath: string) => Promise>; export declare type TLoaderMap = { [herdType: string]: FHerdDeclarationLoader; }; export interface THerdLoader { loadHerd(herdFilePath: TFileSystemPath): Promise; } export declare function createHerdLoader(injected: THerdLoaderDependencies): THerdLoader;