import * as Docker from 'dockerode';
import type { Composition } from '@balena/compose-parser';
import type { BuildTask, RegistrySecrets } from '@balena/compose/dist/multibuild';
import Logger = require('../logger');
import type { DeviceInfo } from './api';
export interface DeviceDeployOptions {
    source: string;
    deviceHost: string;
    devicePort?: number;
    dockerfilePath?: string;
    registrySecrets: RegistrySecrets;
    multiDockerignore: boolean;
    nocache: boolean;
    noParentCheck: boolean;
    nolive: boolean;
    pull: boolean;
    detached: boolean;
    services?: string[];
    system: boolean;
    env: string[];
    convertEol: boolean;
}
interface ParsedEnvironment {
    [serviceName: string]: {
        [key: string]: string;
    };
}
export declare function deployToDevice(opts: DeviceDeployOptions): Promise<void>;
export declare function rebuildSingleTask(serviceName: string, docker: Docker, logger: Logger, deviceInfo: DeviceInfo, composition: Composition, source: string, opts: DeviceDeployOptions, containerIdCb?: (id: string) => void): Promise<string[]>;
export declare function generateTargetState(currentTargetState: Record<string, any>, composition: Composition, buildTasks: BuildTask[], env: ParsedEnvironment): Record<string, any>;
export {};
