Skip to content

Latest commit

 

History

History
2150 lines (1924 loc) · 80.6 KB

binding.api.md

File metadata and controls

2150 lines (1924 loc) · 80.6 KB

API Report File for "@contember/binding"

Do not edit this file. It is a report generated by API Extractor.

import { ContentQueryBuilder } from '@contember/client';
import type { CrudQueryBuilder } from '@contember/client';
import { EmbeddedActionsParser } from 'chevrotain';
import { v4 as generateUuid } from 'uuid';
import { GraphQlBuilder } from '@contember/client';
import { GraphQlClient } from '@contember/client';
import { GraphQlClientError } from '@contember/client';
import type { GraphQlClientRequestOptions } from '@contember/client';
import { GraphQlLiteral } from '@contember/client';
import { Input } from '@contember/client';
import { MutationResult } from '@contember/client';
import type { Result } from '@contember/client';
import { TokenType } from 'chevrotain';
import { TransactionResult } from '@contember/client';
import type { TreeFilter } from '@contember/client';

// @public (undocumented)
export type Alias = string;

// @public (undocumented)
export interface AnyField {
    // (undocumented)
    field: FieldName;
}

// @public (undocumented)
export interface AsyncBatchUpdatesOptions extends BatchUpdatesOptions {
    // (undocumented)
    contentClient: GraphQlClient;
    // (undocumented)
    systemClient: GraphQlClient;
    // (undocumented)
    tenantClient: GraphQlClient;
}

// @public (undocumented)
export interface BaseRelation {
    // (undocumented)
    __typename: '_Relation';
    // (undocumented)
    name: FieldName;
    // (undocumented)
    nullable: boolean | null;
    // (undocumented)
    onDelete: 'restrict' | 'cascade' | 'setNull' | null;
    // (undocumented)
    orderBy: SchemaRelationOrderBy[] | null;
    // (undocumented)
    orphanRemoval: boolean | null;
    // (undocumented)
    targetEntity: EntityName;
    // (undocumented)
    type: 'OneHasOne' | 'OneHasMany' | 'ManyHasOne' | 'ManyHasMany';
}

// @public (undocumented)
export interface BatchUpdatesOptions {
    // (undocumented)
    getEntityByKey: GetEntityByKey;
    // (undocumented)
    getEntityListSubTree: GetEntityListSubTree;
    // (undocumented)
    getEntitySubTree: GetEntitySubTree;
}

// @public (undocumented)
export interface BindingConfig {
    // (undocumented)
    beforePersistSettleLimit: number;
    // (undocumented)
    beforeUpdateSettleLimit: number;
    // (undocumented)
    persistSuccessSettleLimit: number;
}

// @public (undocumented)
export class BindingError extends Error {
}

// @public (undocumented)
export interface BindingOperations<Node> extends AsyncBatchUpdatesOptions {
    // (undocumented)
    batchDeferredUpdates: (performUpdates: (bindingOperations: BatchUpdatesOptions) => void) => void;
    // (undocumented)
    extendTree: ExtendTree<Node>;
    // (undocumented)
    getTreeFilters: () => TreeFilter[];
    // (undocumented)
    persist: Persist;
}

// @public (undocumented)
export class ClientGeneratedUuid implements RuntimeIdSpec {
    constructor(value: string);
    // (undocumented)
    get existsOnServer(): false;
    // (undocumented)
    get uniqueValue(): UniqueEntityId;
    // (undocumented)
    readonly value: string;
}

// @public (undocumented)
export class Config {
    constructor(config?: Partial<BindingConfig>);
    // (undocumented)
    getValue<Name extends keyof BindingConfig>(name: Name): BindingConfig[Name];
    // (undocumented)
    setValue<Name extends keyof BindingConfig>(name: Name, value: BindingConfig[Name]): this;
}

// @public (undocumented)
export const createQueryBuilder: (schema: Schema) => ContentQueryBuilder;

// @public (undocumented)
export class DataBinding<Node> {
    constructor(contentApiClient: GraphQlClient, systemApiClient: GraphQlClient, tenantApiClient: GraphQlClient, treeStore: TreeStore, environment: Environment, createMarkerTree: (node: Node, environment: Environment) => MarkerTreeRoot, batchedUpdates: (callback: () => any) => void, onUpdate: (newData: TreeRootAccessor<Node>, binding: DataBinding<Node>) => void, onError: (error: GraphQlClientError, binding: DataBinding<Node>) => void, onPersistSuccess: (result: SuccessfulPersistResult, binding: DataBinding<Node>) => void, options: {
        skipStateUpdateAfterPersist: boolean;
    });
    // (undocumented)
    extendTree(newFragment: Node, options?: ExtendTreeOptions): Promise<TreeRootId | undefined>;
}

// @public (undocumented)
export const DataBindingExtendAborted: unique symbol;

// @public (undocumented)
export type DataBindingTransactionResult = TransactionResult<Record<string, MutationResult<ReceivedEntityData>>>;

// @public (undocumented)
export class DirtinessTracker {
    // (undocumented)
    getTotalTouchCount(): number;
    // (undocumented)
    hasChanges(): boolean;
    // (undocumented)
    increaseBy(delta: number): void;
    // (undocumented)
    reset(): void;
}

// @public (undocumented)
export class EntityAccessor implements Errorable {
    // Warning: (ae-forgotten-export) The symbol "EntityRealmState" needs to be exported by the entry point index.d.ts
    // Warning: (ae-forgotten-export) The symbol "EntityOperations" needs to be exported by the entry point index.d.ts
    constructor(state: EntityRealmState, operations: EntityOperations, runtimeId: RuntimeId, key: EntityRealmKey, // ⚠️ This is *NOT* the id! ⚠️
    name: EntityName, fieldData: EntityAccessor.FieldData, dataFromServer: SingleEntityPersistedData | undefined, hasUnpersistedChanges: boolean, errors: ErrorAccessor | undefined, environment: Environment, getAccessor: EntityAccessor.GetEntityAccessor);
    // (undocumented)
    addError(error: ErrorAccessor.Error | string): () => void;
    // (undocumented)
    addEventListener<Type extends keyof EntityAccessor.RuntimeEntityEventListenerMap>(event: {
        type: Type;
        key?: string;
    }, listener: EntityAccessor.EntityEventListenerMap[Type]): () => void;
    // (undocumented)
    batchUpdates(performUpdates: EntityAccessor.BatchUpdatesHandler): void;
    // (undocumented)
    connectEntityAtField(field: SugaredRelativeSingleEntity | string, entityToConnect: EntityAccessor): void;
    // (undocumented)
    deleteEntity(): void;
    // (undocumented)
    disconnectEntityAtField(field: SugaredRelativeSingleEntity | string, initializeReplacement?: EntityAccessor.BatchUpdatesHandler): void;
    // (undocumented)
    readonly environment: Environment;
    // (undocumented)
    readonly errors: ErrorAccessor | undefined;
    // (undocumented)
    get existsOnServer(): boolean;
    // (undocumented)
    readonly getAccessor: EntityAccessor.GetEntityAccessor;
    // (undocumented)
    getEntity(entity: SugaredRelativeSingleEntity | string): EntityAccessor;
    // (undocumented)
    getEntityList(entityList: SugaredRelativeEntityList | string): EntityListAccessor;
    getField<Value extends FieldValue = FieldValue>(field: SugaredRelativeSingleField | string): FieldAccessor<Value>;
    // (undocumented)
    getMarker(): HasOneRelationMarker | HasManyRelationMarker | EntityListSubTreeMarker | EntitySubTreeMarker;
    // (undocumented)
    getParent(): EntityAccessor | EntityListAccessor | undefined;
    // (undocumented)
    getRelativeEntityList(entityList: RelativeEntityList): EntityListAccessor;
    // (undocumented)
    getRelativeSingleEntity(relativeSingleEntity: RelativeSingleEntity): EntityAccessor;
    // (undocumented)
    getRelativeSingleField<Value extends FieldValue = FieldValue>(field: RelativeSingleField): FieldAccessor<Value>;
    // (undocumented)
    readonly hasUnpersistedChanges: boolean;
    get id(): EntityId;
    // (undocumented)
    get idOnServer(): EntityId | undefined;
    // (undocumented)
    readonly key: EntityRealmKey;
    // (undocumented)
    readonly name: EntityName;
    // (undocumented)
    updateValues(fieldValuePairs: EntityAccessor.FieldValuePairs): void;
}

// @public (undocumented)
export namespace EntityAccessor {
    // (undocumented)
    export type BatchUpdatesHandler = (getAccessor: GetEntityAccessor, options: BatchUpdatesOptions) => void;
    // (undocumented)
    export type BeforePersistHandler = (getAccessor: GetEntityAccessor, options: AsyncBatchUpdatesOptions) => void | BeforePersistHandler | Promise<void | BeforePersistHandler>;
    // (undocumented)
    export interface EntityEventListenerMap extends RuntimeEntityEventListenerMap {
        // (undocumented)
        initialize: BatchUpdatesHandler;
    }
    // (undocumented)
    export type EntityEventType = keyof EntityEventListenerMap;
    // (undocumented)
    export type FieldData = Map<FieldName, FieldDatum>;
    // (undocumented)
    export interface FieldDatum {
        // (undocumented)
        getAccessor(): NestedAccessor;
    }
    // (undocumented)
    export type FieldValuePairs = {
        [field: string]: FieldValue;
    } | Iterable<[SugaredRelativeSingleField | string, FieldValue]>;
    // (undocumented)
    export type GetEntityAccessor = () => EntityAccessor;
    // (undocumented)
    export type NestedAccessor = EntityAccessor | EntityListAccessor | FieldAccessor<any>;
    // (undocumented)
    export type PersistErrorHandler = (getAccessor: GetEntityAccessor, options: PersistErrorOptions) => void | Promise<void>;
    // (undocumented)
    export type PersistSuccessHandler = (getAccessor: GetEntityAccessor, options: PersistSuccessOptions) => void | PersistSuccessHandler | Promise<void | PersistSuccessHandler>;
    // (undocumented)
    export interface RuntimeEntityEventListenerMap {
        // (undocumented)
        beforePersist: BeforePersistHandler;
        // (undocumented)
        beforeUpdate: BatchUpdatesHandler;
        // (undocumented)
        connectionUpdate: UpdateListener;
        // (undocumented)
        persistError: PersistErrorHandler;
        // (undocumented)
        persistSuccess: PersistSuccessHandler;
        // (undocumented)
        update: UpdateListener;
    }
    // (undocumented)
    export type UpdateListener = (accessor: EntityAccessor) => void;
}

// @public (undocumented)
export interface EntityCreationParameters {
    // (undocumented)
    isNonbearing: boolean;
    // (undocumented)
    setOnCreate: SetOnCreate;
}

// @public (undocumented)
export const EntityCreationParametersDefaults: {
    readonly isNonbearing: false;
};

// Warning: (ae-forgotten-export) The symbol "Events" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export type EntityEventListenerStore = EventListenersStore<keyof Events, Events>;

// @public (undocumented)
export type EntityFieldMarker = FieldMarker | HasOneRelationMarker | HasManyRelationMarker;

// @public (undocumented)
export type EntityFieldMarkers = Map<PlaceholderName, EntityFieldMarker>;

// @public (undocumented)
export class EntityFieldMarkersContainer {
    constructor(hasAtLeastOneBearingField: boolean, markers: EntityFieldMarkers, // Indexed by placeholder names
    placeholders: EntityFieldPlaceholders);
    // (undocumented)
    getFieldByPlaceholder(placeholder: PlaceholderName): FieldName;
    // (undocumented)
    getPlaceholdersByField(field: FieldName): IterableIterator<PlaceholderName>;
    // (undocumented)
    readonly hasAtLeastOneBearingField: boolean;
    // (undocumented)
    readonly markers: EntityFieldMarkers;
    // (undocumented)
    readonly placeholders: EntityFieldPlaceholders;
}

// @public (undocumented)
export type EntityFieldPersistedData = FieldValue | ServerId | EntityListPersistedData;

// @public (undocumented)
export type EntityFieldPlaceholders = Map<FieldName, PlaceholderName | Set<PlaceholderName>>;

// @public (undocumented)
export class EntityFieldsWithHoistablesMarker {
    constructor(fields: EntityFieldMarkersContainer, subTrees: SubTreeMarkers | undefined, parentReference: ParentEntityParameters | undefined);
    // (undocumented)
    readonly fields: EntityFieldMarkersContainer;
    // (undocumented)
    readonly parentReference: ParentEntityParameters | undefined;
    // (undocumented)
    readonly subTrees: SubTreeMarkers | undefined;
}

// @public (undocumented)
export type EntityId = string | number;

// @public (undocumented)
export class EntityListAccessor implements Errorable {
    // (undocumented)
    [Symbol.iterator](): IterableIterator<EntityAccessor>;
    // Warning: (ae-forgotten-export) The symbol "EntityListState" needs to be exported by the entry point index.d.ts
    // Warning: (ae-forgotten-export) The symbol "ListOperations" needs to be exported by the entry point index.d.ts
    constructor(state: EntityListState, operations: ListOperations, _children: ReadonlyMap<EntityId, {
        getAccessor: EntityAccessor.GetEntityAccessor;
    }>, _idsPersistedOnServer: ReadonlySet<EntityId>, hasUnpersistedChanges: boolean, errors: ErrorAccessor | undefined, environment: Environment, getAccessor: EntityListAccessor.GetEntityListAccessor);
    // (undocumented)
    addChildEventListener<Type extends keyof EntityAccessor.EntityEventListenerMap>(state: EntityListState, event: {
        type: Type;
        key?: string;
    }, listener: EntityAccessor.EntityEventListenerMap[Type]): () => void;
    // (undocumented)
    addError(error: ErrorAccessor.Error | string): () => void;
    // (undocumented)
    addEventListener<Type extends keyof EntityListAccessor.RuntimeEntityListEventListenerMap>(event: {
        type: Type;
        key?: string;
    }, listener: EntityListAccessor.RuntimeEntityListEventListenerMap[Type]): () => void;
    // (undocumented)
    batchUpdates(performUpdates: EntityListAccessor.BatchUpdatesHandler): void;
    // (undocumented)
    connectEntity(entityToConnect: EntityAccessor): void;
    // (undocumented)
    createNewEntity(initialize?: EntityAccessor.BatchUpdatesHandler): RuntimeId;
    // (undocumented)
    deleteAll(): void;
    // (undocumented)
    disconnectAll(): void;
    // (undocumented)
    disconnectEntity(childEntity: EntityAccessor, options?: {
        noPersist?: boolean;
    }): void;
    // (undocumented)
    readonly environment: Environment;
    // (undocumented)
    readonly errors: ErrorAccessor | undefined;
    // (undocumented)
    readonly getAccessor: EntityListAccessor.GetEntityListAccessor;
    // (undocumented)
    getChildEntityById(id: EntityId): EntityAccessor;
    // (undocumented)
    hasEntityId(id: EntityId): boolean;
    // (undocumented)
    hasEntityOnServer(entityOrItsId: EntityAccessor | EntityId): boolean;
    // (undocumented)
    readonly hasUnpersistedChanges: boolean;
    // (undocumented)
    ids(): IterableIterator<EntityId>;
    get idsPersistedOnServer(): Set<EntityId>;
    // (undocumented)
    isEmpty(): boolean;
    keys(): IterableIterator<EntityRealmKey>;
    // (undocumented)
    get length(): number;
}

// @public (undocumented)
export namespace EntityListAccessor {
    // (undocumented)
    export type BatchUpdatesHandler = (getAccessor: GetEntityListAccessor, options: BatchUpdatesOptions) => void;
    // (undocumented)
    export type BeforePersistHandler = (getAccessor: GetEntityListAccessor, options: AsyncBatchUpdatesOptions) => void | Promise<void | BeforePersistHandler>;
    // (undocumented)
    export type ChildEventListenerMap = {
        [EventType in keyof Pick<EntityAccessor.EntityEventListenerMap, 'beforeUpdate' | 'initialize' | 'update'> & string as `child${Capitalize<EventType>}`]: EntityAccessor.EntityEventListenerMap[EventType];
    };
    // (undocumented)
    export interface EntityListEventListenerMap extends RuntimeEntityListEventListenerMap {
        // (undocumented)
        initialize: BatchUpdatesHandler;
    }
    // (undocumented)
    export type EntityListEventType = keyof EntityListEventListenerMap;
    // (undocumented)
    export type GetEntityListAccessor = () => EntityListAccessor;
    // (undocumented)
    export type PersistErrorHandler = (getAccessor: GetEntityListAccessor, options: PersistErrorOptions) => void | Promise<void>;
    // (undocumented)
    export type PersistSuccessHandler = (getAccessor: GetEntityListAccessor, options: PersistSuccessOptions) => void | Promise<void | PersistSuccessHandler>;
    // (undocumented)
    export interface RuntimeEntityListEventListenerMap {
        // (undocumented)
        beforePersist: BeforePersistHandler;
        // (undocumented)
        beforeUpdate: BatchUpdatesHandler;
        // (undocumented)
        persistError: PersistErrorHandler;
        // (undocumented)
        persistSuccess: PersistSuccessHandler;
        // (undocumented)
        update: UpdateListener;
    }
    // (undocumented)
    export type UpdateListener = (accessor: EntityListAccessor) => void;
}

// @public (undocumented)
export interface EntityListEventListeners {
    // (undocumented)
    childEventListeners: EntityEventListenerStore | undefined;
    // (undocumented)
    eventListeners: EntityListEventListenerStore | undefined;
}

// Warning: (ae-forgotten-export) The symbol "Events_2" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export type EntityListEventListenerStore = EventListenersStore<keyof Events_2, Partial<Events_2>>;

// @public (undocumented)
export interface EntityListParameters extends EntityListPreferences {
    // (undocumented)
    filter: Filter | undefined;
    // (undocumented)
    limit: Limit | undefined;
    // (undocumented)
    offset: Offset | undefined;
    // (undocumented)
    orderBy: OrderBy | undefined;
}

// @public (undocumented)
export type EntityListPersistedData = Set<EntityId>;

// @public (undocumented)
export interface EntityListPreferences {
    // (undocumented)
    initialEntityCount: number;
}

// @public (undocumented)
export const EntityListPreferencesDefaults: EntityListPreferences;

// @public (undocumented)
export class EntityListSubTreeMarker {
    constructor(parameters: QualifiedEntityList | UnconstrainedQualifiedEntityList, fields: EntityFieldMarkersContainer, environment: Environment);
    // (undocumented)
    get entityName(): string;
    // (undocumented)
    readonly environment: Environment;
    // (undocumented)
    readonly fields: EntityFieldMarkersContainer;
    // (undocumented)
    readonly parameters: QualifiedEntityList | UnconstrainedQualifiedEntityList;
    // (undocumented)
    readonly placeholderName: string;
}

// @public (undocumented)
export type EntityName = string;

// @public (undocumented)
export type EntityRealmKey = string;

// @public (undocumented)
export class EntitySubTreeMarker {
    constructor(parameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity, fields: EntityFieldMarkersContainer, environment: Environment);
    // (undocumented)
    get entityName(): string;
    // (undocumented)
    readonly environment: Environment;
    // (undocumented)
    readonly fields: EntityFieldMarkersContainer;
    // (undocumented)
    readonly parameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity;
    // (undocumented)
    readonly placeholderName: string;
}

// @public (undocumented)
export class Environment<Node extends Environment.AnyNode | undefined = Environment.AnyNode | undefined> {
    // (undocumented)
    static create(): Environment<Environment.AnyNode | undefined>;
    // (undocumented)
    getAllDimensions(): Environment.SelectedDimensions;
    // (undocumented)
    getAllParameters(): Environment.Parameters;
    // (undocumented)
    getAllVariables(): Environment.CustomVariables;
    // (undocumented)
    getDimension<F>(dimensionName: string): string[];
    // (undocumented)
    getDimensionOrElse<F>(dimensionName: string, fallback: F): string[] | F;
    // (undocumented)
    getExtension<S, R>(extension: Environment.Extension<S, R>): R;
    // (undocumented)
    getParameter<F>(key: string): string | number;
    // (undocumented)
    getParameterOrElse<F>(key: string, fallback: F): string | number | F;
    // (undocumented)
    getParent(): Environment;
    // (undocumented)
    getSchema(): Schema;
    // (undocumented)
    getSubTree(): Environment.SubTreeNode;
    // (undocumented)
    getSubTreeNode(): Node & Environment.AnyNode;
    // @deprecated (undocumented)
    getValue<V extends Environment.Value = Environment.Value>(key: string): V;
    // @deprecated (undocumented)
    getValueOrElse<F, V extends Environment.Value = Environment.Value>(key: string, fallback: F): V | F;
    // (undocumented)
    getVariable<V extends Environment.Value = Environment.Value>(key: string): V;
    // (undocumented)
    getVariableOrElse<F, V extends Environment.Value = Environment.Value>(key: string, fallback: F): V | F;
    // (undocumented)
    hasDimension(dimensionName: string): boolean;
    // Warning: (tsdoc-missing-deprecation-message) The @deprecated block must include a deprecation message, e.g. describing the recommended alternative
    //
    // @deprecated (undocumented)
    hasName(key: string): boolean;
    // (undocumented)
    hasParameter(key: string): boolean;
    // (undocumented)
    hasVariable(key: string): boolean;
    // (undocumented)
    merge(other: Environment): Environment;
    // (undocumented)
    withDimensions(dimensions: Environment.SelectedDimensions): Environment;
    // (undocumented)
    withExtension<S, R>(extension: Environment.Extension<S, R>, state: S): Environment;
    // (undocumented)
    withParameters(parameters: Environment.Parameters): Environment;
    // (undocumented)
    withSchema(schema: Schema): Environment;
    // (undocumented)
    withSubTree<Node extends Environment.SubTreeNode>(SubTree: Node): Environment<Node>;
    // (undocumented)
    withSubTreeChild<Node extends Environment.InnerNode>(node: Node): Environment<Node>;
    // (undocumented)
    withVariables(variables: Environment.ValuesMapWithFactory | undefined): Environment;
}

// @public (undocumented)
export namespace Environment {
    // (undocumented)
    export type AnyNode = SubTreeNode | InnerNode;
    // (undocumented)
    export interface ColumnNode {
        // (undocumented)
        entity: SchemaEntity;
        // (undocumented)
        field: SchemaColumn;
        // (undocumented)
        type: 'column';
    }
    // (undocumented)
    export interface CustomVariables {
        // (undocumented)
        [key: string]: Value;
    }
    // Warning: (tsdoc-missing-deprecation-message) The @deprecated block must include a deprecation message, e.g. describing the recommended alternative
    //
    // @deprecated (undocumented)
    export type DeltaFactory = ValuesMapWithFactory;
    // (undocumented)
    export interface EntityListNode {
        // (undocumented)
        entity: SchemaEntity;
        // (undocumented)
        field: SchemaRelation;
        // (undocumented)
        type: 'entity-list';
    }
    // (undocumented)
    export interface EntityNode {
        // (undocumented)
        entity: SchemaEntity;
        // (undocumented)
        field: SchemaRelation;
        // (undocumented)
        type: 'entity';
    }
    // (undocumented)
    export type Extension<State, Result> = {
        create: (state: State | undefined, environment: Environment) => Result;
    };
    // (undocumented)
    export type InnerNode = EntityNode | EntityListNode | ColumnNode;
    // (undocumented)
    export type Name = string;
    // (undocumented)
    export interface Options<Node extends AnyNode | undefined> {
        // (undocumented)
        dimensions: SelectedDimensions;
        // (undocumented)
        extensions: Map<Extension<unknown, unknown>, unknown>;
        // (undocumented)
        node?: Node;
        // (undocumented)
        parameters: Parameters;
        // (undocumented)
        parent?: Environment;
        // (undocumented)
        schema?: Schema;
        // (undocumented)
        variables: CustomVariables;
    }
    // (undocumented)
    export type Parameters = {
        [K in string]?: string | number;
    };
    // (undocumented)
    export type ReactElementLike = {
        type: any;
        props: any;
    };
    // (undocumented)
    export type ResolvedValue = Value;
    // (undocumented)
    export interface SelectedDimensions {
        // (undocumented)
        [key: string]: string[];
    }
    // (undocumented)
    export interface SubTreeEntityListNode {
        // (undocumented)
        entity: SchemaEntity;
        // (undocumented)
        expectedCardinality: 'zero-to-many' | 'zero';
        // (undocumented)
        filter: Filter;
        // (undocumented)
        type: 'subtree-entity-list';
    }
    // (undocumented)
    export interface SubTreeEntityNode {
        // (undocumented)
        entity: SchemaEntity;
        // (undocumented)
        expectedCardinality: 'zero' | 'one' | 'zero-or-one';
        // (undocumented)
        filter: Filter;
        // (undocumented)
        type: 'subtree-entity';
    }
    // (undocumented)
    export type SubTreeNode = SubTreeEntityNode | SubTreeEntityListNode;
    // (undocumented)
    export type Value = string | number | boolean | undefined | GraphQlLiteral | Filter | ReactElementLike;
    const // (undocumented)
    createExtension: <S, R>(create: (state: S | undefined, environment: Environment) => R, otherMethods?: Omit<Extension<S, R>, "create"> | undefined) => Extension<S, R>;
    // (undocumented)
    export interface ValuesMapWithFactory {
        // (undocumented)
        [key: string]: ((environment: Environment) => Value) | Value;
    }
}

// @public (undocumented)
export interface Errorable {
    // (undocumented)
    errors: ErrorAccessor | undefined;
}

// @public (undocumented)
export class ErrorAccessor {
    constructor(errors: ErrorAccessor.Error[]);
    // (undocumented)
    readonly errors: ErrorAccessor.Error[];
}

// @public (undocumented)
export namespace ErrorAccessor {
    // (undocumented)
    export type Error = ExecutionError | ValidationError;
    // (undocumented)
    export type ErrorId = number;
    // (undocumented)
    export type ErrorsById = Map<ErrorId, Error>;
    // (undocumented)
    export interface ExecutionError {
        // (undocumented)
        code: Result.ExecutionErrorType;
        // (undocumented)
        developerMessage: string | null;
        // (undocumented)
        type: 'execution';
    }
    // (undocumented)
    export type ExecutionErrors = ExecutionError[];
    // (undocumented)
    export interface ValidationError {
        // (undocumented)
        code: WellKnownErrorCode | string | undefined;
        // (undocumented)
        message: string;
        // (undocumented)
        type: 'validation';
    }
    // (undocumented)
    export type ValidationErrors = ValidationError[];
    // (undocumented)
    export type WellKnownErrorCode = 'fieldRequired';
    const // (undocumented)
    normalizeError: (error: Error | string) => Error;
}

// @public (undocumented)
export type ErrorPersistResult = InvalidInputPersistResult | InvalidResponseResult;

// Warning: (ae-forgotten-export) The symbol "GenericEventsMap" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export class EventListenersStore<EventTypes extends string, Events extends GenericEventsMap<EventTypes>> {
    constructor(parentStoreGetter?: (() => EventListenersStore<EventTypes, Events> | undefined) | undefined, listeners?: Map<string, Set<Events[any]>>);
    // (undocumented)
    add<Type extends EventTypes>(event: {
        type: Type;
        key?: string;
    }, handler: Events[Type]): () => void;
    // (undocumented)
    append(other: EventListenersStore<EventTypes, Events>): void;
    // (undocumented)
    clone(): EventListenersStore<EventTypes, Events>;
    // (undocumented)
    cloneDeep(): EventListenersStore<EventTypes, Events>;
    // (undocumented)
    delete<Type extends EventTypes>(event: {
        type: Type;
        key?: string;
    }): void;
    // (undocumented)
    deleteByType<Type extends EventTypes>(type: Type): void;
    // (undocumented)
    get<Type extends EventTypes>(event: {
        type: Type;
        key?: string;
    }): Set<Events[Type]> | undefined;
    // (undocumented)
    set<Type extends EventTypes>(event: {
        type: Type;
        key?: string;
    }, listeners: Set<Events[Type]>): void;
}

// @public (undocumented)
export class EventManager {
    // Warning: (ae-forgotten-export) The symbol "UpdateMetadata" needs to be exported by the entry point index.d.ts
    constructor(asyncBatchUpdatesOptions: AsyncBatchUpdatesOptions, batchUpdatesOptions: BatchUpdatesOptions, config: Config, dirtinessTracker: DirtinessTracker, onUpdate: (metadata: UpdateMetadata) => void, treeStore: TreeStore, batchedUpdates: (callback: () => any) => void);
    // (undocumented)
    asyncOperation<T>(operation: () => Promise<T>): Promise<T>;
    // (undocumented)
    asyncTransaction<T>(transaction: () => Promise<T>): Promise<T>;
    // (undocumented)
    getEventDispatchers<State extends StateNode, EventListenerTypes extends Exclude<State['eventListeners'], undefined> extends EventListenersStore<infer Keys, infer Map> ? [Keys, Map] : never, EventType extends EventListenerTypes[0]>(state: State, event: {
        type: EventType;
        key?: string;
    }, listenerArgs: Parameters<Exclude<EventListenerTypes[1][EventType], undefined>>): Array<() => ReturnType<Exclude<EventListenerTypes[1][EventType], undefined>>> | undefined;
    // (undocumented)
    getEventListeners<State extends StateNode, EventListenerTypes extends Exclude<State['eventListeners'], undefined> extends EventListenersStore<infer Keys, infer Map> ? [Keys, Map] : never, EventType extends EventListenerTypes[0]>(state: State, event: {
        type: EventType;
        key?: string;
    }): Set<Exclude<EventListenerTypes[1][EventType], undefined>> | undefined;
    // (undocumented)
    static readonly NO_CHANGES_DIFFERENCE = 0;
    // (undocumented)
    persistOperation(operation: () => Promise<SuccessfulPersistResult>): Promise<SuccessfulPersistResult>;
    // (undocumented)
    registerJustUpdated(justUpdated: StateNode, changesDelta: number): void;
    // Warning: (ae-forgotten-export) The symbol "StateNode" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    registerNewlyInitialized(newlyInitialized: StateNode): void;
    // (undocumented)
    registerUpdatedConnection(parentState: EntityRealmState, placeholderName: PlaceholderName): void;
    // (undocumented)
    syncOperation<T>(operation: () => T): T;
    // (undocumented)
    syncTransaction<T>(transaction: () => T): T;
    // (undocumented)
    triggerOnBeforePersist(): Promise<void>;
    // (undocumented)
    triggerOnPersistError(options: PersistErrorOptions): Promise<void>;
    // (undocumented)
    triggerOnPersistSuccess(options: PersistSuccessOptions): Promise<void>;
}

// @public (undocumented)
export type ExpectedEntityCount = 'upToOne' | 'possiblyMany';

// @public (undocumented)
export type ExpectedQualifiedEntityMutation = 'none' | 'anyMutation';

// @public (undocumented)
export type ExpectedRelationMutation = 'none' | 'createOrDelete' | 'connectOrDisconnect' | 'anyMutation';

// @public (undocumented)
export type ExtendTree<Node> = (newFragment: Node, options?: ExtendTreeOptions) => Promise<TreeRootId | undefined>;

// @public (undocumented)
export interface ExtendTreeOptions {
    // (undocumented)
    environment?: Environment;
    // (undocumented)
    signal?: AbortSignal;
}

// @public (undocumented)
export class FieldAccessor<Value extends FieldValue = FieldValue> implements Errorable {
    // Warning: (ae-forgotten-export) The symbol "FieldState" needs to be exported by the entry point index.d.ts
    // Warning: (ae-forgotten-export) The symbol "FieldOperations" needs to be exported by the entry point index.d.ts
    constructor(state: FieldState<Value>, operations: FieldOperations, fieldName: FieldName, value: Value | null, valueOnServer: Value | null, defaultValue: Value | undefined, errors: ErrorAccessor | undefined, hasUnpersistedChanges: boolean, touchLog: ReadonlySet<string> | undefined, getAccessor: FieldAccessor.GetFieldAccessor<Value>, schema: SchemaColumn);
    // (undocumented)
    addError(error: ErrorAccessor.Error | string): () => void;
    // (undocumented)
    addEventListener<Type extends keyof FieldAccessor.FieldEventListenerMap<Value>>(event: {
        type: Type;
        key?: string;
    }, listener: FieldAccessor.FieldEventListenerMap<Value>[Type]): () => void;
    // Warning: (ae-forgotten-export) The symbol "TemporalFieldHelper" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    get asTemporal(): TemporalFieldHelper;
    // Warning: (ae-forgotten-export) The symbol "UuidFieldHelper" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    get asUuid(): UuidFieldHelper;
    // (undocumented)
    clearErrors(): void;
    // (undocumented)
    readonly defaultValue: Value | undefined;
    // (undocumented)
    readonly errors: ErrorAccessor | undefined;
    // (undocumented)
    readonly fieldName: FieldName;
    // (undocumented)
    readonly getAccessor: FieldAccessor.GetFieldAccessor<Value>;
    // (undocumented)
    readonly hasUnpersistedChanges: boolean;
    // (undocumented)
    hasValue(candidate: this['value']): boolean;
    // (undocumented)
    get isTouched(): boolean;
    // (undocumented)
    isTouchedBy(agent: string): boolean;
    // (undocumented)
    get resolvedValue(): Value | null;
    // (undocumented)
    readonly schema: SchemaColumn;
    // (undocumented)
    updateValue(newValue: Value | null, options?: FieldAccessor.UpdateOptions): void;
    // (undocumented)
    readonly value: Value | null;
    // (undocumented)
    readonly valueOnServer: Value | null;
}

// @public (undocumented)
export namespace FieldAccessor {
    const // (undocumented)
    userAgent = "user";
    // (undocumented)
    export type BeforeUpdateListener<Value extends FieldValue = FieldValue> = (updatedAccessor: FieldAccessor<Value>) => void;
    // (undocumented)
    export interface FieldEventListenerMap<Value extends FieldValue = FieldValue> extends RuntimeFieldEventListenerMap<Value> {
        // (undocumented)
        initialize: InitializeListener<Value>;
    }
    // (undocumented)
    export type FieldEventType = keyof FieldEventListenerMap;
    // (undocumented)
    export type GetFieldAccessor<Value extends FieldValue = FieldValue> = () => FieldAccessor<Value>;
    // (undocumented)
    export type InitializeListener<Value extends FieldValue = FieldValue> = (getAccessor: GetFieldAccessor<Value>, options: BatchUpdatesOptions) => void;
    // (undocumented)
    export interface RuntimeFieldEventListenerMap<Value extends FieldValue = FieldValue> {
        // (undocumented)
        beforeUpdate: BeforeUpdateListener<Value>;
        // (undocumented)
        update: UpdateListener<Value>;
    }
    // (undocumented)
    export type UpdateListener<Value extends FieldValue = FieldValue> = (accessor: FieldAccessor<Value>) => void;
    // (undocumented)
    export interface UpdateOptions {
        // (undocumented)
        agent?: string;
    }
}

// @public (undocumented)
export interface FieldEventListeners {
    // (undocumented)
    eventListeners: FieldEventListenerStore | undefined;
}

// Warning: (ae-forgotten-export) The symbol "Events_3" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export type FieldEventListenerStore<Value extends FieldValue = FieldValue> = EventListenersStore<keyof Events_3<Value>, Partial<Events_3<Value>>>;

// @public (undocumented)
export type FieldEventListenerValue<E extends keyof FieldAccessor.FieldEventListenerMap, Persisted extends FieldValue = FieldValue> = Events_3<Persisted>[E] | Set<Events_3<Persisted>[E]>;

// @public
export class FieldMarker {
    constructor(fieldName: FieldName, defaultValue?: FieldValue | undefined, isNonbearing?: boolean);
    // (undocumented)
    readonly defaultValue?: FieldValue | undefined;
    // (undocumented)
    readonly fieldName: FieldName;
    // (undocumented)
    readonly isNonbearing: boolean;
    // (undocumented)
    readonly placeholderName: string;
}

// @public (undocumented)
export type FieldName = string;

// @public (undocumented)
export type FieldValue = JsonValue;

// @public (undocumented)
export type Filter<T = GraphQlLiteral> = Input.Where<Input.Condition<Input.ColumnValue<T>>>;

export { generateUuid }

// @public (undocumented)
export type GetEntityByKey = (key: string) => EntityAccessor;

// @public (undocumented)
export type GetEntityListSubTree = (parametersOrAlias: Alias | SugaredQualifiedEntityList | SugaredUnconstrainedQualifiedEntityList, treeId?: TreeRootId, environment?: Environment) => EntityListAccessor;

// @public (undocumented)
export type GetEntitySubTree = (parametersOrAlias: Alias | SugaredQualifiedSingleEntity | SugaredUnconstrainedQualifiedSingleEntity, treeId?: TreeRootId, environment?: Environment) => EntityAccessor;

// @public (undocumented)
export interface HasManyRelation extends Relation, EntityListParameters, EntityListEventListeners {
}

// @public (undocumented)
export class HasManyRelationMarker {
    constructor(parameters: HasManyRelation, fields: EntityFieldMarkersContainer, environment: Environment);
    // (undocumented)
    readonly environment: Environment;
    // (undocumented)
    readonly fields: EntityFieldMarkersContainer;
    // (undocumented)
    get isNonbearing(): boolean;
    // (undocumented)
    readonly parameters: HasManyRelation;
    // (undocumented)
    readonly placeholderName: string;
}

// @public (undocumented)
export interface HasOneRelation extends Relation, SingleEntityParameters, SingleEntityEventListeners {
    // (undocumented)
    reducedBy: UniqueWhere | undefined;
}

// @public (undocumented)
export class HasOneRelationMarker {
    constructor(parameters: HasOneRelation, fields: EntityFieldMarkersContainer, environment: Environment);
    // (undocumented)
    readonly environment: Environment;
    // (undocumented)
    readonly fields: EntityFieldMarkersContainer;
    // (undocumented)
    get isNonbearing(): boolean;
    // (undocumented)
    readonly parameters: HasOneRelation;
    // (undocumented)
    readonly placeholderName: string;
}

// @public (undocumented)
export interface InvalidInputPersistResult {
    // (undocumented)
    errors: ErrorAccessor.Error[];
    // (undocumented)
    response?: DataBindingTransactionResult;
    // (undocumented)
    type: 'invalidInput';
}

// @public (undocumented)
export interface InvalidResponseResult {
    // (undocumented)
    errors: any;
    // (undocumented)
    type: 'invalidResponse';
}

// @public (undocumented)
export interface InverseRelation extends BaseRelation {
    // (undocumented)
    inversedBy?: never;
    // (undocumented)
    ownedBy: FieldName;
    // (undocumented)
    side: 'inverse';
}

// @public (undocumented)
export interface JsonArray<Ext = never> extends Array<JsonValue<Ext>> {
}

// @public (undocumented)
export interface JsonObject<Ext = never> {
    // (undocumented)
    [key: string]: JsonValue<Ext>;
}

// @public (undocumented)
export type JsonValue<Ext = never> = string | number | boolean | null | JsonObject<Ext> | JsonArray<Ext> | Ext;

// @public (undocumented)
export interface JustSuccessPersistResult {
    // (undocumented)
    afterPersistError?: any;
    // (undocumented)
    persistedEntityIds: EntityId[];
    // (undocumented)
    type: 'justSuccess';
}

// @public (undocumented)
export interface LeafField extends FieldEventListeners {
    // (undocumented)
    defaultValue: FieldValue | undefined;
    // (undocumented)
    isNonbearing: boolean;
}

// @public (undocumented)
export const LeafFieldDefaults: {
    readonly isNonbearing: false;
};

// @public (undocumented)
export type Limit = number;

// @public (undocumented)
export class MarkerFactory {
    // (undocumented)
    static createEntityFieldMarkersContainer(marker: EntityFieldMarker | undefined): EntityFieldMarkersContainer;
    // (undocumented)
    static createEntityFieldsWithHoistablesMarker(fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker, environment: Environment): EntityFieldsWithHoistablesMarker;
    // (undocumented)
    static createEntityListSubTreeMarker(entityList: SugaredQualifiedEntityList, fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker, environment: Environment): EntityFieldsWithHoistablesMarker;
    // (undocumented)
    static createEntitySubTreeMarker(entity: SugaredQualifiedSingleEntity, fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker, environment: Environment): EntityFieldsWithHoistablesMarker;
    // (undocumented)
    static createFieldMarker(field: SugaredRelativeSingleField, environment: Environment): EntityFieldMarkersContainer;
    // (undocumented)
    static createParentEntityMarker(parentEntity: SugaredParentEntityParameters, fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker, environment: Environment): EntityFieldsWithHoistablesMarker;
    // (undocumented)
    static createRelativeEntityListFields(field: SugaredRelativeEntityList, environment: Environment, fields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer): EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker;
    // (undocumented)
    static createRelativeSingleEntityFields(field: SugaredRelativeSingleEntity, environment: Environment, fields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer): EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker;
    // (undocumented)
    static createUnconstrainedEntityListSubTreeMarker(entityList: SugaredUnconstrainedQualifiedEntityList, fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker, environment: Environment): EntityFieldsWithHoistablesMarker;
    // (undocumented)
    static createUnconstrainedEntitySubTreeMarker(entity: SugaredUnconstrainedQualifiedSingleEntity, fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker, environment: Environment): EntityFieldsWithHoistablesMarker;
}

// @public (undocumented)
export class MarkerMerger {
    // (undocumented)
    static mergeEntityFieldPlaceholders(original: EntityFieldPlaceholders, fresh: EntityFieldPlaceholders): EntityFieldPlaceholders;
    // (undocumented)
    static mergeEntityFields(original: SubTreeMarkers, fresh: SubTreeMarkers): SubTreeMarkers;
    // (undocumented)
    static mergeEntityFields(original: EntityFieldMarkers, fresh: EntityFieldMarkers): EntityFieldMarkers;
    // (undocumented)
    static mergeEntityFieldsContainers(original: EntityFieldMarkersContainer, fresh: EntityFieldMarkersContainer): EntityFieldMarkersContainer;
    // (undocumented)
    static mergeEntityListSubTreeMarkers(original: EntityListSubTreeMarker, fresh: EntityListSubTreeMarker): EntityListSubTreeMarker;
    // (undocumented)
    static mergeEntitySubTreeMarkers(original: EntitySubTreeMarker, fresh: EntitySubTreeMarker): EntitySubTreeMarker;
    // (undocumented)
    static mergeEnvironments(original: Environment, fresh: Environment): Environment;
    // (undocumented)
    static mergeFieldMarkers(original: FieldMarker, fresh: FieldMarker): FieldMarker;
    // (undocumented)
    static mergeHasManyRelationMarkers(original: HasManyRelationMarker, fresh: HasManyRelationMarker): HasManyRelationMarker;
    // (undocumented)
    static mergeHasOneRelationMarkers(original: HasOneRelationMarker, fresh: HasOneRelationMarker): HasOneRelationMarker;
    // (undocumented)
    static mergeInSystemFields(original: EntityFieldMarkersContainer | undefined): EntityFieldMarkersContainer;
    // (undocumented)
    static mergeMarkers(original: MeaningfulMarker, fresh: MeaningfulMarker): MeaningfulMarker;
    // (undocumented)
    static mergeMarkerTreeRoots(original: MarkerTreeRoot, fresh: MarkerTreeRoot): MarkerTreeRoot;
    // (undocumented)
    static mergeSubTreeMarkers(original: SubTreeMarkers | undefined, fresh: SubTreeMarkers | undefined): SubTreeMarkers | undefined;
    // (undocumented)
    static mergeSubTreePlaceholdersByAliases(original: Map<Alias, PlaceholderName>, fresh: Map<Alias, PlaceholderName>): Map<string, string>;
}

// @public (undocumented)
export class MarkerTreeRoot {
    constructor(subTrees: SubTreeMarkers, placeholdersByAliases: Map<Alias, PlaceholderName>);
    // (undocumented)
    readonly placeholdersByAliases: Map<Alias, PlaceholderName>;
    // (undocumented)
    readonly subTrees: SubTreeMarkers;
}

// @public (undocumented)
export type MeaningfulMarker = FieldMarker | HasOneRelationMarker | HasManyRelationMarker | EntityListSubTreeMarker | EntitySubTreeMarker;

// @public (undocumented)
export const NIL_UUID = "00000000-0000-0000-0000-000000000000";

// @public (undocumented)
export class NormalizedPersistedData {
    constructor(subTreeDataStore: SubTreeDataStore, persistedEntityDataStore: PersistedEntityDataStore);
    // (undocumented)
    readonly persistedEntityDataStore: PersistedEntityDataStore;
    // (undocumented)
    readonly subTreeDataStore: SubTreeDataStore;
}

// @public (undocumented)
export interface NothingToPersistPersistResult {
    // (undocumented)
    type: 'nothingToPersist';
}

// @public (undocumented)
export type Offset = number;

// @public (undocumented)
export type OptionallyVariableFieldValue = FieldValue | VariableFieldValue;

// @public (undocumented)
export type OrderBy = Input.OrderBy<CrudQueryBuilder.OrderDirection>[];

// @public (undocumented)
export interface OwningRelation extends BaseRelation {
    // (undocumented)
    inversedBy: FieldName | null;
    // (undocumented)
    ownedBy?: never;
    // (undocumented)
    side: 'owning';
}

// @public (undocumented)
export class ParentEntityMarker {
    constructor(parentEntity: ParentEntityParameters, fields: EntityFieldMarkersContainer);
    // (undocumented)
    readonly fields: EntityFieldMarkersContainer;
    // (undocumented)
    readonly parentEntity: ParentEntityParameters;
}

// @public (undocumented)
export interface ParentEntityParameters extends SingleEntityEventListeners {
}

// @public
export class Parser extends EmbeddedActionsParser {
    // (undocumented)
    static parseQueryLanguageExpression<E extends Parser.EntryPoint>(input: string, entry: E, environment: Environment): Parser.ParserResult[E];
}

// @public (undocumented)
export namespace Parser {
    // (undocumented)
    export namespace AST {
        // (undocumented)
        export type ColumnValue = Input.ColumnValue<GraphQlBuilder.GraphQlLiteral>;
        // (undocumented)
        export type Condition = Input.Condition<ColumnValue>;
        // (undocumented)
        export type ConditionOperator = keyof Pick<Condition, 'eq' | 'notEq' | 'lt' | 'lte' | 'gt' | 'gte'>;
        // (undocumented)
        export type FieldWhere = Input.FieldWhere<Condition>;
    }
    // (undocumented)
    export type EntryPoint = keyof ParserResult;
    // (undocumented)
    export interface ParserResult {
        // (undocumented)
        columnValue: AST.ColumnValue;
        // (undocumented)
        filter: Filter;
        // (undocumented)
        orderBy: OrderBy;
        // Warning: (ae-forgotten-export) The symbol "ParsedQualifiedEntityList" needs to be exported by the entry point index.d.ts
        //
        // (undocumented)
        qualifiedEntityList: ParsedQualifiedEntityList;
        // Warning: (ae-forgotten-export) The symbol "ParsedQualifiedFieldList" needs to be exported by the entry point index.d.ts
        //
        // (undocumented)
        qualifiedFieldList: ParsedQualifiedFieldList;
        // Warning: (ae-forgotten-export) The symbol "ParsedQualifiedSingleEntity" needs to be exported by the entry point index.d.ts
        //
        // (undocumented)
        qualifiedSingleEntity: ParsedQualifiedSingleEntity;
        // Warning: (ae-forgotten-export) The symbol "ParsedRelativeEntityList" needs to be exported by the entry point index.d.ts
        //
        // (undocumented)
        relativeEntityList: ParsedRelativeEntityList;
        // Warning: (ae-forgotten-export) The symbol "ParsedRelativeSingleEntity" needs to be exported by the entry point index.d.ts
        //
        // (undocumented)
        relativeSingleEntity: ParsedRelativeSingleEntity;
        // Warning: (ae-forgotten-export) The symbol "ParsedRelativeSingleField" needs to be exported by the entry point index.d.ts
        //
        // (undocumented)
        relativeSingleField: ParsedRelativeSingleField;
        // Warning: (ae-forgotten-export) The symbol "ParsedTaggedMap" needs to be exported by the entry point index.d.ts
        //
        // (undocumented)
        taggedMap: ParsedTaggedMap;
        // Warning: (ae-forgotten-export) The symbol "ParsedUnconstrainedQualifiedEntityList" needs to be exported by the entry point index.d.ts
        //
        // (undocumented)
        unconstrainedQualifiedEntityList: ParsedUnconstrainedQualifiedEntityList;
        // Warning: (ae-forgotten-export) The symbol "ParsedUnconstrainedQualifiedSingleEntity" needs to be exported by the entry point index.d.ts
        //
        // (undocumented)
        unconstrainedQualifiedSingleEntity: ParsedUnconstrainedQualifiedSingleEntity;
        // (undocumented)
        uniqueWhere: UniqueWhere;
    }
}

// @public (undocumented)
export type Persist = (options?: PersistOptions) => Promise<SuccessfulPersistResult>;

// @public (undocumented)
export type PersistedEntityDataStore = Map<UniqueEntityId, SingleEntityPersistedData>;

// @public (undocumented)
export interface PersistErrorOptions extends AsyncBatchUpdatesOptions {
}

// @public (undocumented)
export interface PersistOptions {
    // (undocumented)
    onPersistError?: (options: PersistErrorOptions) => void | Promise<void>;
    // (undocumented)
    onPersistSuccess?: (options: PersistSuccessOptions) => void | Promise<void>;
    // (undocumented)
    signal?: AbortSignal;
}

// @public (undocumented)
export interface PersistSuccessOptions extends AsyncBatchUpdatesOptions {
    // (undocumented)
    successType: 'justSuccess' | 'nothingToPersist';
}

// @public (undocumented)
export class PlaceholderGenerator {
    // (undocumented)
    static getEntityListSubTreePlaceholder(subTreeParameters: QualifiedEntityList | UnconstrainedQualifiedEntityList, environment: Environment): string;
    // (undocumented)
    static getEntitySubTreePlaceholder(subTreeParameters: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity, environment: Environment): string;
    // (undocumented)
    static getFieldPlaceholder(fieldName: FieldName): string;
    // (undocumented)
    static getHasManyRelationPlaceholder(relation: HasManyRelation): string;
    // (undocumented)
    static getHasOneRelationPlaceholder(relation: HasOneRelation): string;
}

// @public (undocumented)
export type PlaceholderName = string;

// @public (undocumented)
export const PRIMARY_KEY_NAME = "id";

// @public (undocumented)
export interface QualifiedEntityList extends EntityListParameters, QualifiedEntityParameters, EntityCreationParameters, EntityListEventListeners {
    // (undocumented)
    hasOneRelationPath: HasOneRelation[];
    // (undocumented)
    isCreating: false;
}

// @public (undocumented)
export interface QualifiedEntityParameters {
    // (undocumented)
    alias: Set<Alias> | undefined;
    // (undocumented)
    entityName: EntityName;
    // (undocumented)
    expectedMutation: ExpectedQualifiedEntityMutation;
}

// @public (undocumented)
export const QualifiedEntityParametersDefaults: {
    readonly expectedMutation: "anyMutation";
};

// @public (undocumented)
export type QualifiedFieldList = EntityListParameters & QualifiedEntityParameters & AnyField & LeafField & {
    hasOneRelationPath: HasOneRelation[];
};

// @public (undocumented)
export interface QualifiedSingleEntity extends QualifiedSingleEntityParameters, SingleEntityParameters, QualifiedEntityParameters, EntityCreationParameters, SingleEntityEventListeners {
    // (undocumented)
    hasOneRelationPath: HasOneRelation[];
    // (undocumented)
    isCreating: false;
}

// @public (undocumented)
export interface QualifiedSingleEntityParameters {
    // (undocumented)
    where: UniqueWhere;
}

// @public (undocumented)
export class QueryLanguage {
    // (undocumented)
    static desugarEventListener<F extends Function>(listener: F | Set<F>): Set<F>;
    // (undocumented)
    static desugarEventListener<F extends Function>(listener: F | Set<F> | undefined): Set<F> | undefined;
    // (undocumented)
    static desugarFilter: (input: string | Filter, environment: Environment) => Filter;
    // (undocumented)
    static desugarOrderBy: (input: string | OrderBy, environment: Environment) => OrderBy;
    // (undocumented)
    static desugarParentEntityParameters(parentEntity: SugaredParentEntityParameters, environment: Environment): ParentEntityParameters;
    // (undocumented)
    static desugarQualifiedEntityList({ entities, ...unsugarableEntityList }: SugaredQualifiedEntityList, environment: Environment): QualifiedEntityList;
    // (undocumented)
    static desugarQualifiedFieldList({ fields, ...unsugarableFieldList }: SugaredQualifiedFieldList, environment: Environment): QualifiedFieldList;
    // (undocumented)
    static desugarQualifiedSingleEntity({ entity, ...unsugarableSingleEntity }: SugaredQualifiedSingleEntity, environment: Environment, options?: {
        missingSetOnCreate?: 'fill' | 'fillAndWarn';
    }): QualifiedSingleEntity;
    // (undocumented)
    static desugarRelativeEntityList(sugaredRelativeEntityList: string | SugaredRelativeEntityList, environment: Environment): RelativeEntityList;
    // (undocumented)
    static desugarRelativeSingleEntity(sugaredRelativeSingleEntity: string | SugaredRelativeSingleEntity, environment: Environment): RelativeSingleEntity;
    // (undocumented)
    static desugarRelativeSingleField(sugaredRelativeSingleField: string | SugaredRelativeSingleField, environment: Environment): RelativeSingleField;
    // (undocumented)
    static desugarSetOnCreate(setOnCreate: SugaredSetOnCreate, environment: Environment): UniqueWhere;
    // (undocumented)
    static desugarTaggedMap: (input: string | ParsedTaggedMap, environment: Environment) => ParsedTaggedMap;
    // (undocumented)
    static desugarUnconstrainedQualifiedEntityList({ entities, ...unsugarableEntityList }: SugaredUnconstrainedQualifiedEntityList, environment: Environment): UnconstrainedQualifiedEntityList;
    // (undocumented)
    static desugarUnconstrainedQualifiedSingleEntity({ entity, ...unsugarableSingleEntity }: SugaredUnconstrainedQualifiedSingleEntity, environment: Environment): UnconstrainedQualifiedSingleEntity;
    // (undocumented)
    static desugarUniqueWhere: (input: string | UniqueWhere, environment: Environment) => UniqueWhere;
}

// @public (undocumented)
export class QueryLanguageError extends Error {
}

// @public (undocumented)
export interface QueryRequestResponse {
    // (undocumented)
    data: ReceivedDataTree;
    // (undocumented)
    errors?: {
        message: string;
        path?: string[];
    }[];
}

// @public (undocumented)
export interface RawSchema {
    // Warning: (ae-forgotten-export) The symbol "RawSchemaEntity" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    entities: RawSchemaEntity[];
    // Warning: (ae-forgotten-export) The symbol "RawSchemaEnum" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    enums: RawSchemaEnum[];
}

// @public (undocumented)
export type ReceivedData = ReceivedEntityData | ReceivedEntityData[];

// @public (undocumented)
export interface ReceivedDataTree {
    // (undocumented)
    [treeId: string]: ReceivedData | null;
}

// @public (undocumented)
export type ReceivedEntityData = {
    __typename: string;
    id: EntityId;
} & {
    [fieldName: string]: ReceivedFieldData;
};

// @public (undocumented)
export type ReceivedFieldData = FieldValue | ReceivedEntityData | Array<ReceivedEntityData>;

// @public (undocumented)
export interface Relation extends AnyField, EntityCreationParameters {
    // (undocumented)
    expectedMutation: ExpectedRelationMutation;
}

// @public (undocumented)
export const RelationDefaults: {
    readonly expectedMutation: "anyMutation";
};

// @public (undocumented)
export interface RelativeEntityList {
    // (undocumented)
    hasManyRelation: HasManyRelation;
    // (undocumented)
    hasOneRelationPath: HasOneRelation[];
}

// @public (undocumented)
export interface RelativeSingleEntity {
    // (undocumented)
    hasOneRelationPath: HasOneRelation[];
}

// @public (undocumented)
export type RelativeSingleField = AnyField & LeafField & {
    hasOneRelationPath: HasOneRelation[];
};

// @public (undocumented)
export type RemovalType = 'disconnect' | 'delete';

// @public (undocumented)
export type RuntimeId = ServerId | ClientGeneratedUuid | UnpersistedEntityDummyId;

// @public (undocumented)
export interface RuntimeIdSpec {
    // (undocumented)
    existsOnServer: boolean;
    // (undocumented)
    uniqueValue: UniqueEntityId;
    // (undocumented)
    value: EntityId;
}

// @public (undocumented)
export type Scalar = string | number | boolean | null;

// @public (undocumented)
export type ScheduleAnotherPersist = (options?: ScheduleAnotherPersistOptions) => void;

// @public (undocumented)
export interface ScheduleAnotherPersistOptions {
    // (undocumented)
    proposedBackoff?: number;
}

// @public (undocumented)
export class Schema {
    constructor(store: SchemaStore);
    // (undocumented)
    getEntity(entityName: EntityName): SchemaEntity;
    // (undocumented)
    getEntityColumn(entityName: EntityName, fieldName: FieldName): SchemaColumn;
    // (undocumented)
    getEntityField(entityName: EntityName, fieldName: FieldName): SchemaField;
    // (undocumented)
    getEntityFieldOrUndefined(entityName: EntityName, fieldName: FieldName): SchemaField | undefined;
    // (undocumented)
    getEntityNames(): string[];
    // (undocumented)
    getEntityOrUndefined(entityName: EntityName): SchemaEntity | undefined;
    // (undocumented)
    getEntityRelation(entityName: EntityName, fieldName: FieldName): SchemaRelation;
    // (undocumented)
    getEnumValues(enumName: SchemaEnumName): string[];
}

// @public (undocumented)
export interface SchemaColumn {
    // (undocumented)
    __typename: '_Column';
    // (undocumented)
    defaultValue: string | number | boolean | null;
    // (undocumented)
    enumName: SchemaEnumName | null;
    // (undocumented)
    name: FieldName;
    // (undocumented)
    nullable: boolean;
    // (undocumented)
    type: SchemaColumnType;
}

// @public (undocumented)
export type SchemaColumnType = SchemaKnownColumnType | string;

// @public (undocumented)
export type SchemaEntities = Map<EntityName, SchemaEntity>;

// @public (undocumented)
export interface SchemaEntity {
    // (undocumented)
    customPrimaryAllowed: boolean;
    // (undocumented)
    fields: SchemaFields;
    // (undocumented)
    name: EntityName;
    // (undocumented)
    unique: SchemaUniqueConstraint[];
}

// @public (undocumented)
export type SchemaEnumName = string;

// @public (undocumented)
export type SchemaEnums = Map<SchemaEnumName, SchemaEnumValues>;

// @public (undocumented)
export type SchemaEnumValues = Set<string>;

// @public (undocumented)
export type SchemaField = SchemaRelation | SchemaColumn;

// @public (undocumented)
export type SchemaFields = Map<FieldName, SchemaField>;

// @public (undocumented)
export type SchemaKnownColumnType = 'Bool' | 'Date' | 'DateTime' | 'Double' | 'Enum' | 'Integer' | 'String' | 'Uuid';

// @public (undocumented)
export class SchemaLoader {
    // (undocumented)
    static loadSchema(client: GraphQlClient, options?: GraphQlClientRequestOptions): Promise<Schema>;
}

// @public (undocumented)
export class SchemaPreprocessor {
    // (undocumented)
    static processRawSchema(rawSchema: RawSchema): SchemaStore;
}

// @public (undocumented)
export type SchemaRelation = OwningRelation | InverseRelation;

// @public (undocumented)
export interface SchemaRelationOrderBy {
    // (undocumented)
    direction: 'asc' | 'desc';
    // (undocumented)
    path: string[];
}

// @public (undocumented)
export interface SchemaStore {
    // (undocumented)
    entities: SchemaEntities;
    // (undocumented)
    enums: SchemaEnums;
}

// @public (undocumented)
export interface SchemaUniqueConstraint {
    // (undocumented)
    fields: Set<FieldName>;
}

// @public (undocumented)
export class ServerId implements RuntimeIdSpec {
    constructor(value: EntityId, entityName: string);
    // (undocumented)
    readonly entityName: string;
    // (undocumented)
    get existsOnServer(): true;
    // (undocumented)
    static formatUniqueValue(id: EntityId, entityName: string): UniqueEntityId;
    // (undocumented)
    get uniqueValue(): UniqueEntityId;
    // (undocumented)
    readonly value: EntityId;
}

// @public (undocumented)
export type SetOnCreate = UniqueWhere | undefined;

// @public (undocumented)
export interface SingleEntityEventListeners {
    // (undocumented)
    eventListeners: EntityEventListenerStore | undefined;
}

// @public (undocumented)
export interface SingleEntityParameters {
    // (undocumented)
    filter: Filter | undefined;
}

// @public (undocumented)
export type SingleEntityPersistedData = Map<PlaceholderName, EntityFieldPersistedData>;

// @public (undocumented)
export class StateInitializer {
    // Warning: (ae-forgotten-export) The symbol "AccessorErrorManager" needs to be exported by the entry point index.d.ts
    constructor(accessorErrorManager: AccessorErrorManager, batchUpdatesOptions: BatchUpdatesOptions, eventManager: EventManager, treeStore: TreeStore);
    // (undocumented)
    initializeEntityEventListenerStore(blueprint: EntityRealmBlueprint): EntityEventListenerStore | undefined;
    // Warning: (ae-forgotten-export) The symbol "EntityRealmBlueprint" needs to be exported by the entry point index.d.ts
    // Warning: (ae-forgotten-export) The symbol "EntityRealmStateStub" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    initializeEntityRealm(id: RuntimeId, entityName: EntityName, blueprint: EntityRealmBlueprint, copyFrom?: EntityRealmState | EntityRealmStateStub): EntityRealmState | EntityRealmStateStub;
    // Warning: (ae-forgotten-export) The symbol "EntityState" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    initializeEntityState(id: RuntimeId, entityName: EntityName): EntityState;
    // Warning: (ae-forgotten-export) The symbol "RootStateNode" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    initializeSubTree(tree: EntitySubTreeMarker | EntityListSubTreeMarker): RootStateNode;
    // (undocumented)
    runImmediateUserInitialization(realm: EntityRealmState | EntityRealmStateStub, initialize: EntityAccessor.BatchUpdatesHandler | undefined): void;
}

// @public (undocumented)
export type SubTreeDataStore = Map<PlaceholderName, ServerId | EntityListPersistedData>;

// @public (undocumented)
export type SubTreeMarkers = Map<PlaceholderName, EntitySubTreeMarker | EntityListSubTreeMarker>;

// @public (undocumented)
export type SuccessfulPersistResult = NothingToPersistPersistResult | JustSuccessPersistResult;

// @public (undocumented)
export interface SugarableAnyField {
    // (undocumented)
    field: FieldName;
}

// @public (undocumented)
export interface SugarableEntityListParameters {
    // (undocumented)
    filter?: SugaredFilter;
}

// @public (undocumented)
export interface SugarableHasManyRelation extends SugarableRelation, SugarableEntityListParameters {
}

// @public (undocumented)
export interface SugarableHasOneRelation extends SugarableRelation, SugarableSingleEntityParameters {
    // (undocumented)
    reducedBy?: SugaredUniqueWhere;
}

// @public (undocumented)
export interface SugarableQualifiedEntityList extends SugarableEntityListParameters, SugarableQualifiedEntityParameters {
    // (undocumented)
    hasOneRelationPath?: SugarableHasOneRelation[] | SugarableHasOneRelation;
}

// @public (undocumented)
export interface SugarableQualifiedEntityParameters {
    // (undocumented)
    entityName: EntityName;
}

// @public (undocumented)
export type SugarableQualifiedFieldList = SugarableEntityListParameters & SugarableQualifiedEntityParameters & SugarableAnyField & {
    hasOneRelationPath?: SugarableHasOneRelation[] | SugarableHasOneRelation;
};

// @public (undocumented)
export interface SugarableQualifiedSingleEntity extends SugarableQualifiedSingleEntityParameters, SugarableSingleEntityParameters, SugarableQualifiedEntityParameters {
    // (undocumented)
    hasOneRelationPath?: SugarableHasOneRelation[] | SugarableHasOneRelation;
}

// @public (undocumented)
export interface SugarableQualifiedSingleEntityParameters {
    // (undocumented)
    where: SugaredUniqueWhere;
}

// @public (undocumented)
export interface SugarableRelation extends SugarableAnyField {
}

// @public (undocumented)
export interface SugarableRelativeEntityList {
    // (undocumented)
    hasManyRelation: SugarableHasManyRelation;
    // (undocumented)
    hasOneRelationPath?: SugarableHasOneRelation[] | SugarableHasOneRelation;
}

// @public (undocumented)
export interface SugarableRelativeSingleEntity {
    // (undocumented)
    hasOneRelationPath: SugarableHasOneRelation[] | SugarableHasOneRelation;
}

// @public (undocumented)
export type SugarableRelativeSingleField = SugarableAnyField & {
    hasOneRelationPath?: SugarableHasOneRelation[] | SugarableHasOneRelation;
};

// @public (undocumented)
export interface SugarableSingleEntityParameters {
    // (undocumented)
    filter?: SugaredFilter;
}

// @public (undocumented)
export interface SugarableUnconstrainedQualifiedEntityList extends SugarableQualifiedEntityParameters {
    // (undocumented)
    hasOneRelationPath?: SugarableHasOneRelation[] | SugarableHasOneRelation;
}

// @public (undocumented)
export interface SugarableUnconstrainedQualifiedSingleEntity extends SugarableQualifiedEntityParameters {
    // (undocumented)
    hasOneRelationPath?: SugarableHasOneRelation[] | SugarableHasOneRelation;
}

// @public (undocumented)
export type SugaredFilter = Filter | string;

// @public (undocumented)
export type SugaredOrderBy = OrderBy | string;

// @public (undocumented)
export interface SugaredParentEntityParameters extends UnsugarableParentEntityParameters {
}

// @public (undocumented)
export interface SugaredQualifiedEntityList extends UnsugarableQualifiedEntityList {
    // (undocumented)
    entities: string | SugarableQualifiedEntityList;
}

// @public (undocumented)
export type SugaredQualifiedFieldList = UnsugarableQualifiedFieldList & {
    fields: string | SugarableQualifiedFieldList;
};

// @public (undocumented)
export interface SugaredQualifiedSingleEntity extends UnsugarableQualifiedSingleEntity {
    // (undocumented)
    entity: string | SugarableQualifiedSingleEntity;
}

// @public (undocumented)
export interface SugaredRelativeEntityList extends UnsugarableRelativeEntityList {
    // (undocumented)
    field: string | SugarableRelativeEntityList;
}

// @public (undocumented)
export interface SugaredRelativeSingleEntity extends UnsugarableRelativeSingleEntity {
    // (undocumented)
    field: string | SugarableHasOneRelation[] | SugarableHasOneRelation;
}

// @public (undocumented)
export type SugaredRelativeSingleField = UnsugarableRelativeSingleField & {
    field: string | SugarableRelativeSingleField;
};

// @public (undocumented)
export type SugaredSetOnCreate = SugaredUniqueWhere | SugaredUniqueWhere[] | Exclude<SetOnCreate, undefined>;

// @public (undocumented)
export interface SugaredUnconstrainedQualifiedEntityList extends UnsugarableUnconstrainedQualifiedEntityList {
    // (undocumented)
    entities: string | SugarableUnconstrainedQualifiedEntityList;
}

// @public (undocumented)
export interface SugaredUnconstrainedQualifiedSingleEntity extends UnsugarableUnconstrainedQualifiedSingleEntity {
    // (undocumented)
    entity: string | SugarableUnconstrainedQualifiedSingleEntity;
}

// @public (undocumented)
export type SugaredUniqueWhere = UniqueWhere | string;

// @public (undocumented)
export const throwBindingError: (message: string) => never;

// @public (undocumented)
export const tokenList: TokenType[];

// @public (undocumented)
export namespace TokenRegExps {
    const // (undocumented)
    entityIdentifier: RegExp;
    const // (undocumented)
    identifier: RegExp;
}

// @public (undocumented)
export const tokens: {
    WhiteSpace: TokenType;
    EntityIdentifier: TokenType;
    Identifier: TokenType;
    DollarSign: TokenType;
    Dot: TokenType;
    Comma: TokenType;
    Colon: TokenType;
    Slash: TokenType;
    NumberLiteral: TokenType;
    StringLiteral: TokenType;
    LeftParenthesis: TokenType;
    RightParenthesis: TokenType;
    LeftBracket: TokenType;
    RightBracket: TokenType;
    NotEquals: TokenType;
    True: TokenType;
    False: TokenType;
    Null: TokenType;
    Equals: TokenType;
    Not: TokenType;
    And: TokenType;
    Or: TokenType;
    LowerEqual: TokenType;
    GreaterEqual: TokenType;
    LowerThan: TokenType;
    GreaterThan: TokenType;
};

// @public (undocumented)
export class TreeAugmenter {
    constructor(eventManager: EventManager, stateInitializer: StateInitializer, treeStore: TreeStore, skipStateUpdateAfterPersist?: boolean);
    // (undocumented)
    extendPersistedData(newPersistedData: ReceivedDataTree, markerTree: MarkerTreeRoot): void;
    // (undocumented)
    extendTreeStates(newTreeId: TreeRootId | undefined, newMarkerTree: MarkerTreeRoot): void;
    // (undocumented)
    resetCreatingSubTrees(): void;
    // Warning: (ae-forgotten-export) The symbol "SubMutationOperation" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    updatePersistedData(response: ReceivedDataTree, operations: SubMutationOperation[]): void;
}

// @public (undocumented)
export class TreeNodeEnvironmentFactory {
    // (undocumented)
    static createEnvironmentForEntity(environment: Environment, sugaredRelativeSingleEntity: SugaredRelativeSingleEntity): Environment<Environment.AnyNode | undefined>;
    // (undocumented)
    static createEnvironmentForEntityList(environment: Environment, sugaredRelativeEntityList: SugaredRelativeEntityList): Environment;
    // (undocumented)
    static createEnvironmentForEntityListSubtree(environment: Environment, sugaredEntityList: SugaredQualifiedEntityList | SugaredUnconstrainedQualifiedEntityList): Environment;
    // (undocumented)
    static createEnvironmentForEntitySubtree(environment: Environment, sugaredEntityList: SugaredQualifiedSingleEntity | SugaredUnconstrainedQualifiedSingleEntity): Environment;
    // (undocumented)
    static createEnvironmentForField(environment: Environment, sugaredRelativeSingleField: SugaredRelativeSingleField): Environment<{
        type: "column";
        entity: SchemaEntity;
        field: SchemaColumn;
    }>;
}

// @public (undocumented)
export class TreeParameterMerger {
    // (undocumented)
    static cloneEntityListEventListeners(store: EntityListEventListenerStore): EntityListEventListenerStore;
    // (undocumented)
    static cloneSingleEntityEventListeners(store: EntityEventListenerStore): EntityEventListenerStore;
    // (undocumented)
    static mergeEntityCreationParameters(original: EntityCreationParameters, fresh: EntityCreationParameters): EntityCreationParameters;
    // (undocumented)
    static mergeEntityListEventListeners(original: EntityListEventListenerStore | undefined, fresh: EntityListEventListenerStore | undefined): EntityListEventListenerStore | undefined;
    // (undocumented)
    static mergeEntityListSubTreeParametersWithSamePlaceholders(original: QualifiedEntityList | UnconstrainedQualifiedEntityList, fresh: QualifiedEntityList | UnconstrainedQualifiedEntityList): QualifiedEntityList | UnconstrainedQualifiedEntityList;
    // (undocumented)
    static mergeEntitySubTreeParametersWithSamePlaceholders(original: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity, fresh: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity): QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity;
    // (undocumented)
    static mergeHasManyRelationsWithSamePlaceholders(original: HasManyRelation, fresh: HasManyRelation): HasManyRelation;
    // (undocumented)
    static mergeHasOneRelationsWithSamePlaceholders(original: HasOneRelation, fresh: HasOneRelation): HasOneRelation;
    // (undocumented)
    static mergeInParentEntity<Original extends Record<Key, EntityEventListenerStore | undefined>, Key extends keyof Original>(original: Original, key: Key, parentEntity: ParentEntityParameters | undefined): Original;
    // (undocumented)
    static mergeParentEntityParameters(original: ParentEntityParameters | undefined, fresh: ParentEntityParameters | undefined): ParentEntityParameters | undefined;
    // (undocumented)
    static mergeSetOnCreate(original: SetOnCreate, fresh: SetOnCreate): SetOnCreate;
    // (undocumented)
    static mergeSingleEntityEventListeners(original: EntityEventListenerStore | undefined, fresh: EntityEventListenerStore | undefined): EntityEventListenerStore | undefined;
}

// @public (undocumented)
export class TreeRootAccessor<Node> {
    constructor(hasUnpersistedChanges: boolean, isMutating: boolean, bindingOperations: BindingOperations<Node>);
    // (undocumented)
    readonly bindingOperations: BindingOperations<Node>;
    // (undocumented)
    readonly hasUnpersistedChanges: boolean;
    // (undocumented)
    readonly isMutating: boolean;
}

// @public (undocumented)
export type TreeRootId = string;

// @public (undocumented)
export class TreeStore {
    constructor(_schema: Schema);
    // (undocumented)
    disposeOfEntity(entity: EntityState): void;
    // (undocumented)
    disposeOfRealm(realmToDisposeOf: EntityRealmState | EntityRealmStateStub): void;
    // (undocumented)
    effectivelyHasTreeRoot(candidateRoot: MarkerTreeRoot): boolean;
    // (undocumented)
    readonly entityRealmStore: Map<EntityRealmKey, EntityRealmState | EntityRealmStateStub>;
    // (undocumented)
    readonly entityStore: Map<UniqueEntityId, EntityState>;
    // (undocumented)
    getEntityListPersistedIds(state: EntityListState): ReadonlySet<EntityId>;
    // (undocumented)
    getPathBackToParent(entityRealm: EntityRealmState | EntityRealmStateStub): {
        fieldBackToParent: FieldName;
        parent: EntityRealmState;
    } | undefined;
    // (undocumented)
    getSubTreeState(mode: 'entity', treeRootId: TreeRootId | undefined, aliasOrParameters: Alias | SugaredQualifiedSingleEntity | SugaredUnconstrainedQualifiedSingleEntity, environment: Environment): EntityRealmState;
    // (undocumented)
    getSubTreeState(mode: 'entityList', treeRootId: TreeRootId | undefined, aliasOrParameters: Alias | SugaredQualifiedEntityList | SugaredUnconstrainedQualifiedEntityList, environment: Environment): EntityListState;
    // (undocumented)
    readonly markerTrees: Map<TreeRootId | undefined, MarkerTreeRoot>;
    // (undocumented)
    mergeInMutationResponse(response: ReceivedDataTree, operations: SubMutationOperation[]): void;
    // (undocumented)
    mergeInQueryResponse(response: ReceivedDataTree, markerTree: MarkerTreeRoot): void;
    // (undocumented)
    readonly persistedData: NormalizedPersistedData;
    // (undocumented)
    get persistedEntityData(): PersistedEntityDataStore;
    // (undocumented)
    get schema(): Schema;
    // (undocumented)
    get subTreePersistedData(): SubTreeDataStore;
    // (undocumented)
    readonly subTreeStatesByRoot: Map<TreeRootId | undefined, Map<PlaceholderName, RootStateNode>>;
}

// @public (undocumented)
export const TYPENAME_KEY_NAME = "__typename";

// @public (undocumented)
export interface UnconstrainedQualifiedEntityList extends QualifiedEntityParameters, EntityCreationParameters, EntityListEventListeners, EntityListPreferences {
    // (undocumented)
    hasOneRelationPath: HasOneRelation[];
    // (undocumented)
    isCreating: true;
    // (undocumented)
    isUnpersisted: boolean;
}

// @public (undocumented)
export interface UnconstrainedQualifiedSingleEntity extends QualifiedEntityParameters, EntityCreationParameters, SingleEntityEventListeners {
    // (undocumented)
    hasOneRelationPath: HasOneRelation[];
    // (undocumented)
    isCreating: true;
    // (undocumented)
    isUnpersisted: boolean;
}

// @public (undocumented)
export type UniqueEntityId = string & {
    __type: 'UniqueEntityId';
};

// @public (undocumented)
export type UniqueWhere<T = GraphQlBuilder.GraphQlLiteral> = Input.UniqueWhere<T>;

// @public (undocumented)
export class UnpersistedEntityDummyId implements RuntimeIdSpec {
    constructor();
    // (undocumented)
    get existsOnServer(): false;
    // (undocumented)
    static matchesDummyId(candidate: EntityId): boolean;
    // (undocumented)
    get uniqueValue(): UniqueEntityId;
    // (undocumented)
    readonly value: string;
}

// @public (undocumented)
export interface UnsugarableEntityCreationParameters {
    // (undocumented)
    isNonbearing?: boolean;
    // (undocumented)
    setOnCreate?: SugaredSetOnCreate;
}

// Warning: (ae-forgotten-export) The symbol "UnsugarableEvents" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export type UnsugarableEntityListEventListeners = {
    [EventType in keyof UnsugarableEvents & string as `on${Capitalize<EventType>}`]?: UnsugarableEvents[EventType] | Set<UnsugarableEvents[EventType]>;
};

// @public (undocumented)
export interface UnsugarableEntityListParameters extends UnsugarableEntityListPreferences {
    // (undocumented)
    limit?: Limit;
    // (undocumented)
    offset?: Offset;
    // (undocumented)
    orderBy?: SugaredOrderBy;
}

// @public (undocumented)
export interface UnsugarableEntityListPreferences {
    // (undocumented)
    initialEntityCount?: number;
}

// @public (undocumented)
export type UnsugarableFieldEventListeners<Persisted extends FieldValue = FieldValue> = {
    onInitialize?: FieldEventListenerValue<'initialize', Persisted>;
    onBeforeUpdate?: FieldEventListenerValue<'beforeUpdate', Persisted>;
    onUpdate?: FieldEventListenerValue<'update', Persisted>;
};

// @public (undocumented)
export interface UnsugarableHasManyRelation extends UnsugarableRelation, UnsugarableEntityListParameters, UnsugarableEntityListEventListeners {
}

// @public (undocumented)
export interface UnsugarableHasOneRelation extends UnsugarableRelation, UnsugarableSingleEntityEventListeners {
}

// @public (undocumented)
export type UnsugarableLeafField = UnsugarableFieldEventListeners & {
    isNonbearing?: boolean;
    defaultValue?: OptionallyVariableFieldValue;
};

// @public (undocumented)
export interface UnsugarableParentEntityParameters extends UnsugarableSingleEntityEventListeners {
}

// @public (undocumented)
export interface UnsugarableQualifiedEntityList extends UnsugarableEntityListParameters, UnsugarableQualifiedEntityParameters, UnsugarableEntityCreationParameters, UnsugarableEntityListEventListeners {
    // (undocumented)
    isCreating?: false;
}

// @public (undocumented)
export interface UnsugarableQualifiedEntityParameters {
    // (undocumented)
    alias?: Alias | Set<Alias>;
    // (undocumented)
    expectedMutation?: ExpectedQualifiedEntityMutation;
}

// @public (undocumented)
export type UnsugarableQualifiedFieldList = UnsugarableEntityListParameters & UnsugarableQualifiedEntityParameters & UnsugarableLeafField;

// @public (undocumented)
export interface UnsugarableQualifiedSingleEntity extends UnsugarableQualifiedEntityParameters, UnsugarableEntityCreationParameters, UnsugarableSingleEntityEventListeners {
    // (undocumented)
    isCreating?: false;
}

// @public (undocumented)
export interface UnsugarableRelation extends UnsugarableEntityCreationParameters {
    // (undocumented)
    expectedMutation?: ExpectedRelationMutation;
}

// @public (undocumented)
export interface UnsugarableRelativeEntityList extends UnsugarableRelation, UnsugarableEntityListParameters, UnsugarableEntityListEventListeners {
}

// @public (undocumented)
export interface UnsugarableRelativeSingleEntity extends UnsugarableHasOneRelation {
}

// @public (undocumented)
export type UnsugarableRelativeSingleField = UnsugarableLeafField;

// @public (undocumented)
export type UnsugarableSingleEntityEventListeners = {
    [EventName in Exclude<keyof EntityAccessor.EntityEventListenerMap, 'connectionUpdate'> & string as `on${Capitalize<EventName>}`]?: EntityAccessor.EntityEventListenerMap[EventName] | Set<EntityAccessor.EntityEventListenerMap[EventName]>;
} & {
    onConnectionUpdate?: {
        [fieldName: string]: EntityAccessor.EntityEventListenerMap['connectionUpdate'] | Set<EntityAccessor.EntityEventListenerMap['connectionUpdate']>;
    };
};

// @public (undocumented)
export interface UnsugarableUnconstrainedQualifiedEntityList extends UnsugarableQualifiedEntityParameters, UnsugarableEntityCreationParameters, UnsugarableEntityListEventListeners, UnsugarableEntityListPreferences {
    // (undocumented)
    isCreating: true;
    // (undocumented)
    isUnpersisted?: boolean;
}

// @public (undocumented)
export interface UnsugarableUnconstrainedQualifiedSingleEntity extends UnsugarableQualifiedEntityParameters, UnsugarableEntityCreationParameters, UnsugarableSingleEntityEventListeners {
    // (undocumented)
    isCreating: true;
    // (undocumented)
    isUnpersisted?: boolean;
}

// @public (undocumented)
export class VariableFieldValue {
    constructor(variableName: string);
    // (undocumented)
    readonly variableName: string;
}

// @public (undocumented)
export class VariableInputTransformer {
    // (undocumented)
    static transformValue(value: OptionallyVariableFieldValue, environment: Environment): FieldValue;
    // (undocumented)
    static transformVariableFieldValue(variableFieldValue: VariableFieldValue, environment: Environment): FieldValue;
}

// @public (undocumented)
export const wrapFilterInHasOnes: (path: HasOneRelation[], filter: Filter) => Filter;

// (No @packageDocumentation comment for this package)