import type { ShapeKeysDefinition, ShapeKeyConfigs } from './shape-key'; import type { NodeShapeDefinition, ShapeDefinition } from './definitions'; import type { ShapeInheritance, ShapeDiscriminatorTypesIntermediate } from './inheritance'; import type { Resource } from './resource'; import type { CompositeResourceMap } from './composite-resource'; import type { ShapePaginated, ShapePaginatedContainer } from './pagination'; import type { GraphQLShapeContext } from './graphql'; import type { UpdateAvailableAnnotation } from './annotation-update-available'; export type ShapeTtls = { [shapeId: string]: number; }; export type ShapeIntegrity = { [shapeId: string]: string[]; }; export type ShapeOpaque = { [shapeId: string]: true; }; export type ShapePrivate = { [shapeId: string]: string[]; }; export type ShapeCoerceFunction = { [shapeId: string]: string; }; export interface ModelInfo { keyPrefix: string; rootTtl: number | undefined; declaredShapeDefinitions: Record; normalizableShapeDefinitions: Record; shapeTtls: ShapeTtls; shapeKeysDefinition: ShapeKeysDefinition; shapeKeyConfigs: ShapeKeyConfigs; shapeOpaque: ShapeOpaque; shapeIntegrity: ShapeIntegrity; shapePaginated: ShapePaginated; shapePaginatedContainer: ShapePaginatedContainer; shapePrivate: ShapePrivate; shapeUpdateAvailable: Record; shapeCoerceFunction: ShapeCoerceFunction; shapeInheritance: ShapeInheritance; compositeResources: CompositeResourceMap; shapeDiscriminatorTypes: ShapeDiscriminatorTypesIntermediate; resources: Resource[]; graphQLShapes: Record; }