import { IopConfig, ServiceEntry, IopSecrets } from "../config/types";
import { ServiceFingerprint } from "../utils/service-fingerprint";
import { DockerClient } from "../docker";
export interface ServiceDeploymentResult {
    serviceName: string;
    status: 'deployed' | 'skipped';
    reason: string;
    url?: string;
}
export interface DeploymentSummary {
    deployed: ServiceDeploymentResult[];
    skipped: ServiceDeploymentResult[];
}
interface DeploymentContext {
    config: IopConfig;
    secrets: IopSecrets;
    targetServices: ServiceEntry[];
    releaseId: string;
    projectName: string;
    networkName: string;
    verboseFlag: boolean;
    imageArchives?: Map<string, string>;
    serviceFingerprints?: Map<string, ServiceFingerprint>;
}
/**
 * Replaces a service container by stopping the old one and creating a new one
 */
/**
 * Pure function to check if service configuration has changed
 */
export declare function checkServiceConfigChanges(currentConfig: any, desiredConfig: any, containerName: string): {
    hasChanges: boolean;
    reason?: string;
};
/**
 * Checks if a service container needs to be updated based on configuration changes
 */
export declare function serviceNeedsUpdate(serviceEntry: ServiceEntry, dockerClient: DockerClient, context: DeploymentContext): Promise<boolean>;
/**
 * Main deployment command that orchestrates the entire deployment process
 */
export declare function deployCommand(rawEntryNamesAndFlags: string[]): Promise<void>;
export {};
