import { JSONSchemaType } from 'ajv';
import { Spawner } from '../../util';
import { TargetHardware } from './get-target-hardware-type';
import { ConfigFileSchemaReturnType } from '@alwaysai/config-nodejs';
export interface SshDockerTargetConfig {
    targetProtocol: 'ssh+docker:';
    targetHostname: string;
    targetPath: string;
    dockerImageId: string;
    targetHardware: TargetHardware;
    deviceId: string;
}
export interface DockerTargetConfig {
    targetProtocol: 'docker:';
    dockerImageId: string;
    targetHardware: TargetHardware;
}
export interface NativeTargetConfig {
    targetProtocol: 'native:';
}
export declare type TargetConfig = SshDockerTargetConfig | DockerTargetConfig | NativeTargetConfig;
export declare const targetConfigSchema: JSONSchemaType<TargetConfig>;
export interface TargetJsonFileReturnType extends ConfigFileSchemaReturnType<TargetConfig> {
    name: string;
    readContainerSpawner: (opts?: {
        ignoreTargetHardware?: boolean;
        volumes?: string[];
        env_vars?: string[];
    }) => Spawner;
    readHostSpawner: () => Spawner;
    readTargetProtocolSafe: () => 'ssh+docker:' | 'docker:' | 'native:' | undefined;
    readFieldSafe: (props: {
        name: string;
    }) => string | undefined;
    describe: () => string | undefined;
}
export declare function TargetJsonFile(cwd?: string): TargetJsonFileReturnType;
//# sourceMappingURL=target-json-file.d.ts.map