import { Paths } from '../../utils/index.js'; import { type WorldAssignment, type WorldAssignmentSnapshot } from '../../domain/index.js'; import type { IWorldAssignmentPort } from '../../application/ports/outbound/IWorldAssignmentPort.js'; import type { IServerSpecRepository } from '../../application/ports/outbound/IServerSpecRepository.js'; /** * World assignments derived from each server's `LEVEL` in * servers//config.env (#670, ADR-0002). There is no other record: * deleting a server releases its world. worlds/.locks is never touched. * * A server is internal (D-1) unless its effective EXTRA_ARGS puts the * universe at /worlds. EXTRA_ARGS follows the template compose env_file * order: servers/global.env (a bare `EXTRA_ARGS` line takes the platform * .env value), then the server's config.env, which wins. */ export declare class ConfigEnvWorldAssignmentAdapter implements IWorldAssignmentPort { private readonly paths; private readonly specRepo?; /** * @param specRepo where LEVEL and SEED writes go (#675, ADR-0003 ยง6): the * ServerSpec repository, built with a runtime so it can check the server is * stopped. Default: a repository without one, which refuses LEVEL changes (R7). */ constructor(paths?: Paths, specRepo?: IServerSpecRepository | undefined); listAssignments(): Promise; snapshot(): Promise; preview(server: string, configEnv: string): Promise; previewPlatformEnv(dotenv: string): Promise; assign(world: string, server: string, options?: { seed?: string; }): Promise; release(world: string): Promise<{ server: string; fallback: string; }>; private read; /** LEVEL/SEED through the ServerSpec (#675): server.yaml is the one record, config.env its rendering. */ private writeConfig; } //# sourceMappingURL=ConfigEnvWorldAssignmentAdapter.d.ts.map