import { Connection } from "@salesforce/core";
import { DeploymentOptions } from "../../deployers/DeploySourceToOrgImpl";
import SfpPackage from "../SfpPackage";
import { DeploymentContext, DeploymentCustomizer } from "./DeploymentCustomizer";
import { Logger } from "@flxbl-io/sfp-logger";
import { ComponentSet } from "@salesforce/source-deploy-retrieve";
import SFPOrg from "../../org/SFPOrg";
import { DeploySourceResult } from "../../deployers/DeploymentExecutor";
export declare abstract class MetdataDeploymentCustomizer implements DeploymentCustomizer {
    abstract gatherComponentsToBeDeployed(sfpPackage: SfpPackage, componentSet: ComponentSet, conn: Connection, logger: Logger): Promise<{
        location: string;
        componentSet: ComponentSet;
    }>;
    abstract isEnabled(sfpPackage: SfpPackage, conn: Connection, logger: Logger): Promise<boolean>;
    abstract getDeploymentOptions(target_org: string, waitTime: string, apiVersion: string): Promise<DeploymentOptions>;
    abstract getName(): string;
    execute(sfpPackage: SfpPackage, componentSet: ComponentSet, sfpOrg: SFPOrg, logger: Logger, deploymentContext: DeploymentContext): Promise<DeploySourceResult>;
}
