/**
 * Constructs a {@link WorldModel} from runtime context. This is intentionally
 * pure / synchronous — async resolvers (DB lookups, IMDS, GitHub) populate
 * fields upstream and pass them in. The build function does the layout and
 * fills in the time block and policy defaults.
 *
 * The resolvers themselves live separately so they can be unit-tested without
 * pulling in this module's prompt-shape concerns.
 */
import { type CredentialEntry, type HeartbeatBlock, type SelfRuntime, type SessionBlock, type User, type UserResource, type WorldModel } from "./types.js";
export type BuildWorldModelInput = {
    koiId?: string;
    orgId?: string;
    plan?: string;
    model?: string;
    runtime?: SelfRuntime;
    user?: User;
    userResources?: UserResource[];
    credentialsInScope?: CredentialEntry[];
    session?: SessionBlock;
    heartbeat?: HeartbeatBlock;
    /** Override "now" for tests. */
    nowMs?: number;
};
/**
 * Build a world-model snapshot. Safe to call on every prompt-assembly pass —
 * the cost is one Date + a few Intl format calls.
 */
export declare function buildWorldModel(input: BuildWorldModelInput): WorldModel;
