/// import { Either } from "fp-ts/Either"; import { Component, ComponentData, UnknownComponent } from "./component"; import { Entity } from "./entity"; import { EntityMap } from "./entity_map"; import { EcsEvent, EventData } from "./events"; import { ArgModifier, ArgModifierResult } from "./arg_modifier"; import { Query } from "./query"; import { Resource, ResourceData } from "./resource"; import { World } from "./world"; export declare const Entities: Resource; export declare const Components: unique symbol; export declare type ComponentsObject = T extends typeof Components ? ReadonlyMap : never; export declare const UUID: unique symbol; export declare type UUIDData = T extends typeof UUID ? string : never; export declare const GetEntity: unique symbol; export declare type GetEntityObject = T extends typeof GetEntity ? Entity : never; export declare const GetArg: unique symbol; export declare type GetArgFunction = (arg: T) => Either>; export declare type GetArgSelector = T extends typeof GetArg ? GetArgFunction : never; export declare const Emit: Resource; export declare const EmitNow: Resource; export declare type EmitFunction = (event: EcsEvent, data: Data, entities?: (string | Entity)[]) => void; export declare const GetWorld: Resource; export declare const RunQuery: Resource; export declare type RunQueryFunction = (query: Query, uuid?: string) => ArgsToData[]; export declare type ArgTypes = Component | Query | Resource | EcsEvent | typeof Components | typeof UUID | typeof GetEntity | typeof GetArg | ArgModifier; declare type AllowUndefined = T extends undefined ? T : never; export declare type ArgData = ComponentData | ResourceData | QueryResults | EventData | ComponentsObject | UUIDData | GetEntityObject | GetArgSelector | ArgModifierResult | AllowUndefined; export declare type ArgsToData = { [K in keyof Args]: ArgData; }; export declare type QueryArgs = Q extends Query ? QueryArgs : never; export declare type QueryResults = Q extends Query ? ArgsToData[] : never; export declare type ComponentsOnly = C extends Component ? C : never; export {};