import { type KitBlueprint, type KitOwnerIdKind } from './core.js'; /** Options for {@link worldsimBlueprint}. */ export interface WorldsimBlueprintOptions { /** Prefix for the type/function names. Defaults to none. */ typePrefix?: string; /** * Day/night + weather: an interval automation advances `time_of_day` * (wrapping at `hoursPerDay`, bumping `day`), optionally re-rolls the * weather, and emits a **spatial notification** at the world anchor chunk * so nearby clients update the sky without polling. Set `false` to omit. * Defaults to a 60s tick, 24-hour days, weather on. */ time?: { intervalMs?: number; hoursPerDay?: number; weather?: boolean; /** Replication radius of the time-changed ping (chunks, 0-8). Defaults to 8. */ notifyDistance?: number; } | false; /** * Resource-node regeneration: an interval automation raises `amount` * toward `max_amount` on depleted nodes; players `gather_node` into a * matching stack. Set `false` to omit. Defaults to a 60s tick. */ nodes?: { intervalMs?: number; } | false; /** * Crop growth: an interval automation advances `stage` toward * `max_stage`; owners `harvest` grown crops into a matching stack. Set * `false` to omit. Defaults to a 60s tick. */ crops?: { intervalMs?: number; } | false; /** * Wave spawner counters: an interval automation bumps `wave` and grows * `next_wave_size` — the actual entity spawning stays host-side on the * replication plane (the BWF hybrid). Off by default. */ waves?: { intervalMs?: number; growth?: number; }; /** Owner-mirror typing (see the kit convention). Defaults to `'int'`. */ ownerIdKind?: KitOwnerIdKind; } /** Names derived by {@link worldsimBlueprint} for a given prefix. */ export interface WorldsimNames { worldStateType: string; nodeType: string; cropType: string; spawnerType: string; advanceTimeFn: string; setWeatherFn: string; regenNodeFn: string; gatherNodeFn: string; growCropFn: string; harvestFn: string; spawnWaveFn: string; clockAutomation: string; regenAutomation: string; growthAutomation: string; waveAutomation: string; } /** Compute the type/function names a worldsim blueprint (and its runtime helper) uses. */ export declare function worldsimNames(typePrefix?: string): WorldsimNames; /** * Blueprint for **world simulation**: day/night + weather (`WorldState` * singleton), regenerating `ResourceNode`s, growing `Crop`s / production * jobs, and `WaveSpawner` counters — all driven by interval automations that * run with **no client online** (the automations simulation tier: seconds, * never per-frame). * * The world clock emits a **spatial notification** at the world anchor chunk * each tick, so nearby clients update the sky push-style instead of polling; * everything else is pull-on-demand (or wire your own notify-to-pull pings). * Wave spawners only advance counters — actual entity spawning belongs on * the replication plane under host authority (the BWF hybrid). * * Runtime counterpart: `client.kit(appId).worldsim`. */ export declare function worldsimBlueprint(options?: WorldsimBlueprintOptions): KitBlueprint; //# sourceMappingURL=worldsim.d.ts.map