import { HandlerContext } from "@atomist/automation-client/lib/HandlerContext";
import { LeveledLogMethod } from "@atomist/automation-client/lib/util/logger";
import { ExecuteGoalResult } from "../../../api/goal/ExecuteGoalResult";
import { SdmGoalEvent } from "../../../api/goal/SdmGoalEvent";
import { ProgressLog } from "../../../spi/log/ProgressLog";
import { KubernetesApplication } from "../kubernetes/request";
/**
 * Given an SdmGoalEvent with the appropriate Kubernetes application
 * data, deploy an application to a Kubernetes cluster.
 *
 * @param goalEvent The Kubernetes deployment goal
 * @param context A standard handler context available from goal executions
 *                or event handlers
 * @param log     SDM goal progress log
 * @return Goal success or failure, with endpoint URL(s) on success if
 *         ingress properties are set
 */
export declare function deployApplication(goalEvent: SdmGoalEvent, context: HandlerContext, log: ProgressLog): Promise<ExecuteGoalResult>;
/** Create a descriptive string for a goal event. */
export declare function deployAppId(g: SdmGoalEvent, c: HandlerContext, a?: KubernetesApplication): string;
/**
 * Log to a specific log level method and a progress log.
 *
 * @param ll Levelled log method like `logger.debug`
 * @param log goal progress log
 */
export declare function llog(message: string, ll: LeveledLogMethod, log: ProgressLog): void;
/**
 * Create identifying deployment destination from goal environment and
 * fulillment name using [[getCluster]], application namespace, and
 * application name.
 *
 * @param goalEvent SDM goal event to generate desitnation for
 * @param app Kubernetes application object
 * @return The cluster name, application namespace, and application name
 */
export declare function destination(goalEvent: SdmGoalEvent, app?: KubernetesApplication): string;
//# sourceMappingURL=deploy.d.ts.map