import { validateTablesWithShorthands, extendedScope, Scope, AbiTypeScope, resolveTablesWithShorthands } from '@latticexyz/store/config/v2';
import { v as validateWorld, a as validateNamespaces, r as resolveWorld, W as WorldWithShorthandsInput } from './world-66d7a46c.js';
export { W as World } from './output-de05b96e.js';
import '@arktype/util';
import './defaults-8b2664e0.js';
import '@latticexyz/store';

declare const worldDeployedEvent = "event WorldDeployed(address indexed newContract, uint256 salt)";
declare const helloWorldEvent = "event HelloWorld(bytes32 indexed worldVersion)";

type validateWorldWithShorthands<world> = {
    [key in keyof world]: key extends "tables" ? validateTablesWithShorthands<world[key], extendedScope<world>> : key extends "namespaces" ? validateNamespacesWithShorthands<world[key], extendedScope<world>> : validateWorld<world>[key];
};
type validateNamespacesWithShorthands<namespaces, scope extends Scope = AbiTypeScope> = {
    [namespace in keyof namespaces]: {
        [key in keyof namespaces[namespace]]: key extends "tables" ? validateTablesWithShorthands<namespaces[namespace][key], scope> : validateNamespaces<namespaces[namespace], scope>[key];
    };
};
type resolveWorldWithShorthands<world> = resolveWorld<{
    [key in keyof world]: key extends "tables" ? resolveTablesWithShorthands<world[key], extendedScope<world>> : key extends "namespaces" ? {
        [namespaceKey in keyof world[key]]: {
            [namespaceProp in keyof world[key][namespaceKey]]: namespaceProp extends "tables" ? resolveTablesWithShorthands<world[key][namespaceKey][namespaceProp], extendedScope<world>> : world[key][namespaceKey][namespaceProp];
        };
    } : world[key];
}>;
declare function resolveWorldWithShorthands<world extends WorldWithShorthandsInput>(world: world): resolveWorldWithShorthands<world>;
declare function defineWorldWithShorthands<world>(world: validateWorldWithShorthands<world>): resolveWorldWithShorthands<world>;

export { defineWorldWithShorthands as defineWorld, helloWorldEvent, worldDeployedEvent };
