import type { EntityData, EntityKey, EntityMetadata, FilterQuery } from '../typings.js'; import type { UpsertOptions } from '../drivers/IDatabaseDriver.js'; import { type Raw } from '../utils/RawQueryFragment.js'; /** @internal */ export declare function getOnConflictFields(meta: EntityMetadata | undefined, data: EntityData, uniqueFields: (keyof T)[] | Raw, options: UpsertOptions): (keyof T)[]; /** * Detects properties that will get their value generated by an `onCreate` hook during the upsert, * i.e. those with an `onCreate` hook and no value provided. Such values are meant for the insert * clause only and must not overwrite an existing row via the `on conflict do update set` clause. * The property filter mirrors `EntityFactory.assignDefaultValues`. * @internal */ export declare function getOnCreateGeneratedFields(meta: EntityMetadata, data: T | EntityData): EntityKey[]; /** @internal */ export declare function getOnConflictReturningFields(meta: EntityMetadata | undefined, data: EntityData, uniqueFields: (keyof T)[] | Raw, options: UpsertOptions): (keyof T)[] | '*'; /** @internal */ export declare function getWhereCondition(meta: EntityMetadata, onConflictFields: (keyof T)[] | Raw | undefined, data: EntityData, where: FilterQuery): { where: FilterQuery; propIndex: number | false; }; /** @internal */ export declare function resetUntouchedCollections(meta: EntityMetadata, entity: Entity): void;