import { Entity } from './entity-aspect';
import { EntityType, DataProperty } from './entity-metadata';
import { EntityKey } from './entity-key';
import { EntityState } from './entity-state';
import { EntityManager } from './entity-manager';
import { MergeStrategy } from './query-options';
/** @hidden @internal */
export declare class EntityGroup {
    entityManager: EntityManager;
    entityType: EntityType;
    _indexMap: {
        [index: string]: number;
    };
    _entities: (Entity | null)[];
    _emptyIndexes: number[];
    constructor(entityManager: EntityManager, entityType: EntityType);
    attachEntity(entity: Entity, entityState: EntityState, mergeStrategy?: MergeStrategy): Entity;
    detachEntity(entity: Entity): Entity;
    findEntityByKey(entityKey: EntityKey): Entity;
    hasChanges(): boolean;
    getChanges(): Entity[];
    getEntities(entityStates: EntityState[]): Entity[];
    _checkOperation(operationName: string): this;
    _clear(): void;
    _updateFkVal(fkProp: DataProperty, oldValue: any, newValue: any): void;
    _fixupKey(tempValue: any, realValue: any): void;
    _replaceKey(oldKey: EntityKey, newKey: EntityKey): void;
}
