import type { IRconPort } from '../../application/ports/outbound/IRconPort.js'; import { Dimension, type EntityPosition } from '../../domain/index.js'; import type { ServerName } from '../../domain/value-objects/ServerName.js'; /** * Runs a command with explicit argv (no shell) and returns stdout. * Injectable so the adapter can be unit-tested without Docker. * * Using argv (not a shell string) prevents command injection via player * names and is async so it never blocks the Node event loop. */ export type CommandRunner = (file: string, args: string[]) => Promise; /** Parse `[x.xd, y.yd, z.zd]` into coordinates. */ export declare function parsePos(output: string): { x: number; y: number; z: number; } | null; /** Parse a dimension id string and normalize to {@link Dimension}. */ export declare function parseDimension(output: string): Dimension | undefined; /** * RCON adapter that resolves live entity positions via * `docker exec rcon-cli data get entity Pos`. * * Commands are run with explicit argv (no shell interpolation) and * asynchronously, so player names with spaces/metacharacters are safe * and concurrent lookups do not block the event loop. */ export declare class RconCliAdapter implements IRconPort { private readonly run; constructor(run?: CommandRunner); private rconArgs; getEntityPosition(server: ServerName | string, player: string): Promise; } //# sourceMappingURL=RconCliAdapter.d.ts.map