/// import * as t from 'io-ts'; import { Component, ComponentData, UnknownComponent } from '../component'; import { Entity } from '../entity'; import { Plugin } from '../plugin'; import { Resource } from '../resource'; interface ComponentTypeMap> extends Map, unknown, unknown>> { get(key: Component): t.Type | undefined; set(key: Component, val: t.Type): this; } export declare const EntityState: t.IntersectionC<[t.TypeC<{ components: t.Type, [string, unknown][], unknown>; }>, t.PartialC<{ name: t.StringC; }>]>; export declare type EntityState = t.TypeOf; export declare class Serializer { readonly componentTypes: ComponentTypeMap; readonly componentsByName: Map; readonly Entity: t.Type; addComponent(component: Component, componentType: t.Type): void; encode(entity: Entity): { components: [string, unknown][]; } & { name?: string | undefined; }; decode(state: unknown): t.Validation; } export declare type EncodedEntity = ReturnType; export declare const EncodedEntity: t.Type; export declare const SerializerResource: Resource; export declare const SerializerPlugin: Plugin; export {};