import type { MetaData, MetaObject } from "@metaobjectsdev/metadata"; /** * True when `entity` is abstract (`@isAbstract: true`). * * Thin, framework-level accessor so generators in sibling codegen packages * have a single import surface for the abstract concept and don't reach into * metadata internals (mirrors how `isProjection` is the shared read-only * discriminator). Abstract types contribute shape via inheritance only. */ export declare function isAbstract(entity: MetaData): boolean; /** * True when `entity` should produce INSTANCE artifacts of ANY kind (read OR * write): CRUD/read hooks, grid columns, grid hooks. Excludes abstract types * (no instantiable representation) and sourceless objects (no route for the * artifact to talk to — see the header note, and #248 for the doctrine). * * Read-capable generators (tanstack hooks/grids) compose this so they skip * abstract bases while still serving VIEW-BACKED projections via their own * `isProjection` read-only branch — a projection over a `@kind: view` source * has a source, so it passes here and keeps its read-only hooks. */ export declare function emitsInstanceArtifacts(entity: MetaObject): boolean; /** * True when `entity` should produce WRITE artifacts (write forms, mutation * surfaces). Excludes abstract types (no instance at all), projections * (read-only views — instantiable for read, never for write), and objects with * no WRITABLE source (nothing to submit to; this is the same predicate the * entity-file generator uses to decide whether an `Insert`/`Update` surface * exists at all, so a form can no longer be emitted against schemas that were * never generated). * * WRITE-only generators (e.g. the React form generator) compose this. */ export declare function emitsWriteArtifacts(entity: MetaObject): boolean; //# sourceMappingURL=instance-artifacts.d.ts.map