import * as plugins from '../plugins.js';
import * as interfaces from './index.js';
import { DockerNetwork } from '../classes.network.js';
import { DockerSecret } from '../classes.secret.js';
import { DockerImage } from '../classes.image.js';
/**
 * Service creation descriptor supporting both string references and class instances.
 * Strings will be resolved to resources internally.
 */
export interface IServiceCreationDescriptor {
    name: string;
    /** Image tag (string) or DockerImage instance */
    image: string | DockerImage;
    labels: interfaces.TLabels;
    /** Network names (strings) or DockerNetwork instances */
    networks: (string | DockerNetwork)[];
    networkAlias: string;
    /** Secret names (strings) or DockerSecret instances */
    secrets: (string | DockerSecret)[];
    ports: string[];
    accessHostDockerSock?: boolean;
    resources?: {
        memorySizeMB?: number;
        volumeMounts?: plugins.tsclass.container.IVolumeMount[];
    };
}
