/**
 * Type enum is used to specify value types in {@link ComponentSchema} to be able
 * to access type values in JavaScript in addition to TypeScript type checks.
 */
declare enum Type {
    Boolean = 0,
    Number = 1,
    OptionalNumber = 2,
    String = 3,
    OptionalString = 4,
    NumberArray = 5,
    OptionalNumberArray = 6,
    StringArray = 7,
    OptionalStringArray = 8,
    Entity = 9,
    OptionalEntity = 10,
    EntityArray = 11,
    OptionalEntityArray = 12,
    T = 13,
    OptionalT = 14
}
/**
 * Used to specify type of {@link ComponentUpdate}.
 * - Enter: Update added a value to an entity that did not have a value before
 * - Exit: Update removed a value from an entity that had a value before
 * - Update: Update changed a value of an entity that already had a value before. Note: the value doesn't need to be different from the previous value.
 * - Noop: Update did nothing (removed a value from an entity that did not have a value)
 */
declare enum UpdateType {
    Enter = 0,
    Exit = 1,
    Update = 2,
    Noop = 3
}
/**
 * Helper constant with all optional {@link Type}s.
 */
declare const OptionalTypes: Type[];

export { OptionalTypes, Type, UpdateType };
