/** * What the smoke test creates, reads and deletes: one row per entity, built * from the .apsorc, in an order where every required parent exists first. */ import { Entity } from "../types/entity"; import { Field } from "../types/field"; import { RelationshipMap } from "../types/relationship"; /** A value for a required field, or undefined when its type can't be filled. */ export declare function sampleValue(field: Field): unknown; export interface PlannedEntity { name: string; payload: Record; /** Foreign keys to fill from parents created earlier: property -> parent entity. */ parents: { property: string; entity: string; }[]; } export interface CrudPlan { /** Parents before children. */ order: PlannedEntity[]; skipped: { name: string; reason: string; }[]; } export declare function planCrud(entities: Entity[], relationships: RelationshipMap): CrudPlan;