export { d as defineWorld, r as resolveWorld, v as validateWorld } from '../world-66d7a46c.js';
import { W as World, M as Module, S as Systems } from '../output-de05b96e.js';
export { C as Codegen, D as Deploy, a as System } from '../output-de05b96e.js';
import { mutable, conform } from '@arktype/util';
import { storeToV1 } from '@latticexyz/store/config/v2';
import '../defaults-8b2664e0.js';
import '@latticexyz/store';

type modulesToV1<modules extends readonly Module[]> = mutable<{
    [key in keyof modules]: Required<modules[key]>;
}>;
declare function modulesToV1<modules extends readonly Module[]>(modules: modules): modulesToV1<modules>;
type systemsToV1<systems extends Systems> = {
    [key in keyof systems]: {
        name?: systems[key]["name"];
        registerFunctionSelectors: systems[key]["registerFunctionSelectors"];
    } & ({
        openAccess: true;
    } | {
        openAccess: false;
        accessList: systems[key]["accessList"];
    });
};
declare function systemsToV1<systems extends Systems>(systems: systems): systemsToV1<systems>;
type worldToV1<world> = world extends World ? Omit<storeToV1<world>, "v2"> & {
    systems: systemsToV1<world["systems"]>;
    excludeSystems: mutable<world["excludeSystems"]>;
    modules: modulesToV1<world["modules"]>;
    worldContractName: world["deploy"]["customWorldContract"];
    postDeployScript: world["deploy"]["postDeployScript"];
    deploysDirectory: world["deploy"]["deploysDirectory"];
    worldsFile: world["deploy"]["worldsFile"];
    worldInterfaceName: world["codegen"]["worldInterfaceName"];
    worldgenDirectory: world["codegen"]["worldgenDirectory"];
    worldImportPath: world["codegen"]["worldImportPath"];
    v2: world;
} : never;
declare function worldToV1<world>(world: conform<world, World>): worldToV1<world>;

export { Module, Systems, World, worldToV1 };
