import type { Paths } from '../../../utils/index.js'; import { type ServerSpecDocument } from '../../../domain/server-spec/ServerSpecDocument.js'; export interface ImportContext { paths: Paths; /** Current host addresses; nip.io router hosts for other addresses are reported as stale. */ hostIps: string[]; } export type ServerSpecImport = { server: string; status: 'imported'; document: ServerSpecDocument; warnings: string[]; } | { server: string; status: 'refused'; reason: string; warnings: string[]; }; /** * Compose `labels`/`environment` in map or list (`KEY=value`) form as a map. * null = a bare key (Compose passes the shell's value through). */ export declare function composeMap(value: unknown): Map; /** * Build the ServerSpecDocument of an existing Docker server from * servers//config.env and docker-compose.yml (ADR-0003 §4). Reads only. * * Refused (the server keeps running as is) when a managed value cannot be * determined: `${...}` interpolation, an unknown --universe location, an * unexpected compose layout, or a value the existing-server rules reject. */ export declare function importDockerServer(name: string, ctx: ImportContext): Promise; /** * `doc` with a hand-edited config.env read back into it (ADR-0003 §3): * type, version, memory, world, playit domain and env come from the file. * Rejects ServerSpecError('undetermined') like a refused import. */ export declare function absorbConfigEnv(doc: ServerSpecDocument, configText: string, paths: Paths, warnings: string[]): Promise; /** * `doc` with the spec-owned fields of a hand-edited docker-compose.yml * (image, mc-router labels) read back into it (ADR-0003 §3). Environment * entries are not spec-owned here: they count as edits outside the spec. */ export declare function absorbCompose(doc: ServerSpecDocument, composeText: string, hostIps: string[], warnings: string[]): ServerSpecDocument; //# sourceMappingURL=importDockerServer.d.ts.map