import StepEntityBase from "./step_entity_base.js"; import StepEntityInternalReference from "./step_entity_internal_reference.js"; import StepModelBase from "./step_model_base.js"; /** * Represents a concrete constructor for a step based entity, * as well as the expected static members. */ export default interface StepEntityConstructor = StepEntityBase> { new (localID: number, internalReference: StepEntityInternalReference, model: StepModelBase, multiReference?: StepEntityInternalReference[]): BaseEntity; /** * The query for this type (includes the sub-types related to build the query from the * inverted type index). */ readonly query: EntityTypeIDs[]; /** * The most concrete entity ID of this. */ readonly expectedType: EntityTypeIDs; } /** * Represents an abstrct step entity constructor function. */ type StepEntityConstructorAbstractType = StepEntityBase> = abstract new (localID: number, internalReference: StepEntityInternalReference, model: StepModelBase, multiReference?: StepEntityInternalReference[]) => BaseEntity; /** * Represents abstract and non-abstract Entity types constructors, allowing them to be used for * type-safe computation and querying. */ export interface StepEntityConstructorAbstract = StepEntityBase> extends StepEntityConstructorAbstractType { /** * The query for this type (includes the sub-types related to build the query from the * inverted type index). */ readonly query: EntityTypeIDs[]; /** * The most concrete entity ID of this. */ readonly expectedType: EntityTypeIDs; } export {}; //# sourceMappingURL=step_entity_constructor.d.ts.map