import type { AnyEntity, Constructor, Dictionary, EntityMetadata, EntityName, EntityProperty, IPrimaryKey } from './typings.js'; /** Base error class for ORM validation errors such as invalid entity state or incorrect usage. */ export declare class ValidationError extends Error { readonly entity?: T | undefined; constructor(message: string, entity?: T | undefined); /** * Gets instance of entity that caused this error. */ getEntity(): AnyEntity | undefined; static fromWrongPropertyType(entity: AnyEntity, property: string, expectedType: string, givenType: string, givenValue: string): ValidationError; static fromWrongRepositoryType(entityName: string, repoType: string, method: string): ValidationError; static fromMergeWithoutPK(meta: EntityMetadata): ValidationError; static transactionRequired(): ValidationError; static entityNotManaged(entity: AnyEntity): ValidationError; static notEntity(owner: AnyEntity, prop: EntityProperty, data: any): ValidationError; static notDiscoveredEntity(data: any, meta?: EntityMetadata, action?: string): ValidationError; static invalidPropertyName(entityName: EntityName, invalid: string): ValidationError; static invalidCollectionValues(entityName: string, propName: string, invalid: unknown): ValidationError; static invalidEnumArrayItems(entityName: string, invalid: unknown): ValidationError; static invalidType(type: Constructor, value: any, mode: string): ValidationError; static propertyRequired(entity: AnyEntity, property: EntityProperty): ValidationError; static cannotModifyInverseCollection(owner: AnyEntity, property: EntityProperty): ValidationError; static cannotModifyReadonlyCollection(owner: AnyEntity, property: EntityProperty): ValidationError; static cannotRemoveFromCollectionWithoutOrphanRemoval(owner: AnyEntity, property: EntityProperty): ValidationError; static invalidCompositeIdentifier(meta: EntityMetadata): ValidationError; static cannotCommit(): ValidationError; static cannotUseGlobalContext(): ValidationError; static sessionContextNotSupported(): ValidationError; static sessionContextRequiresImplicitTransactions(): ValidationError; static sessionContextWithDisabledTransactions(): ValidationError; static sessionContextInsideTransaction(action?: 'set' | 'clear'): ValidationError; static cannotStageNonScalarSessionVariable(filterName: string, argName: string): ValidationError; static sessionContextStreamRequiresTransaction(): ValidationError; static connectionSessionContextNotSupported(): ValidationError; static cannotUseOperatorsInsideEmbeddables(entityName: EntityName, propName: string, payload: unknown): ValidationError; static cannotUseGroupOperatorsInsideScalars(entityName: EntityName, propName: string, payload: unknown): ValidationError; static invalidEmbeddableQuery(entityName: EntityName, propName: string, embeddableType: string): ValidationError; static invalidQueryCondition(cond: unknown): ValidationError; } /** Error thrown when cursor-based pagination encounters missing or invalid cursor values. */ export declare class CursorError extends ValidationError { static entityNotPopulated(entity: AnyEntity, prop: string): ValidationError; static missingValue(entityName: string, prop: string): ValidationError; static invalidCursor(entityName: string, cause: Error): CursorError; } /** Error thrown when an optimistic lock conflict is detected during entity persistence. */ export declare class OptimisticLockError extends ValidationError { static notVersioned(meta: EntityMetadata): OptimisticLockError; static lockFailed(entityOrName: AnyEntity | string): OptimisticLockError; static lockFailedVersionMismatch(entity: AnyEntity, expectedLockVersion: number | Date, actualLockVersion: number | Date): OptimisticLockError; } /** Error thrown when entity metadata is invalid, incomplete, or inconsistent. */ export declare class MetadataError extends ValidationError { static fromMissingPrimaryKey(meta: EntityMetadata): MetadataError; static fromWrongReference(meta: EntityMetadata, prop: EntityProperty, key: 'inversedBy' | 'mappedBy', owner?: EntityProperty): MetadataError; static fromWrongForeignKey(meta: EntityMetadata, prop: EntityProperty, key: string): MetadataError; static fromWrongTypeDefinition(meta: EntityMetadata, prop: EntityProperty): MetadataError; static fromWrongOwnership(meta: EntityMetadata, prop: EntityProperty, key: 'inversedBy' | 'mappedBy'): MetadataError; static fromWrongReferenceKind(meta: EntityMetadata, owner: EntityProperty, prop: EntityProperty): MetadataError; static fromInversideSidePrimary(meta: EntityMetadata, owner: EntityProperty, prop: EntityProperty): MetadataError; static unknownIndexProperty(meta: EntityMetadata, prop: string, type: string): MetadataError; static multipleVersionFields(meta: EntityMetadata, fields: string[]): MetadataError; static invalidVersionFieldType(meta: EntityMetadata): MetadataError; static fromUnknownEntity(entityName: string, source: string): MetadataError; static noEntityDiscovered(): MetadataError; static onlyAbstractEntitiesDiscovered(): MetadataError; static duplicateEntityDiscovered(paths: string[]): MetadataError; static duplicateFieldName(entityName: EntityName, names: [string, string][]): MetadataError; static multipleDecorators(entityName: string, propertyName: string): MetadataError; static missingMetadata(entity: string): MetadataError; static ambiguousEntityName(className: string): MetadataError; static invalidPrimaryKey(meta: EntityMetadata, prop: EntityProperty, requiredName: string): MetadataError; static invalidManyToManyWithPivotEntity(meta1: EntityMetadata, prop1: EntityProperty, meta2: EntityMetadata, prop2: EntityProperty): MetadataError; static targetIsAbstract(meta: EntityMetadata, prop: EntityProperty): MetadataError; static nonPersistentCompositeProp(meta: EntityMetadata, prop: EntityProperty): MetadataError; static propertyTargetsEntityType(meta: EntityMetadata, prop: EntityProperty, target: EntityMetadata): MetadataError; static throughRelationMissingProperty(meta: EntityMetadata, prop: EntityProperty, through: EntityMetadata, side: 'owner' | 'target'): MetadataError; static throughRelationCompositeTarget(meta: EntityMetadata, prop: EntityProperty): MetadataError; static throughRelationInvalidKind(meta: EntityMetadata, prop: EntityProperty): MetadataError; static fromMissingOption(meta: EntityMetadata, prop: EntityProperty, option: string): MetadataError; static targetKeyOnManyToMany(meta: EntityMetadata, prop: EntityProperty): MetadataError; static targetKeyNotUnique(meta: EntityMetadata, prop: EntityProperty, target?: EntityMetadata): MetadataError; static targetKeyNotFound(meta: EntityMetadata, prop: EntityProperty, target?: EntityMetadata): MetadataError; static incompatiblePolymorphicTargets(meta: EntityMetadata, prop: EntityProperty, target1: EntityMetadata, target2: EntityMetadata, reason: string): MetadataError; static dangerousPropertyName(meta: EntityMetadata, prop: EntityProperty): MetadataError; static viewEntityWithoutExpression(meta: EntityMetadata): MetadataError; static mixedInheritanceStrategies(root: EntityMetadata, child: EntityMetadata): MetadataError; static tptNotSupportedByDriver(meta: EntityMetadata): MetadataError; /** Thrown when database triggers are defined on an entity using a driver that does not support them. */ static triggersNotSupportedByDriver(meta: EntityMetadata): MetadataError; /** Thrown when row level security is declared on an entity using a driver that does not support it. */ static rowLevelSecurityNotSupportedByDriver(meta: EntityMetadata): MetadataError; /** Thrown when row level security is declared on a non-root entity of an STI hierarchy. */ static rowLevelSecurityOnNonRootStiEntity(meta: EntityMetadata): MetadataError; /** Thrown when two policies on the same entity are given the same explicit name. */ static duplicatePolicyName(meta: EntityMetadata, name: string): MetadataError; /** Thrown when a filter flagged with `rls` is declared on a driver that does not support row level security. */ static rlsFilterNotSupportedByDriver(meta: EntityMetadata, filterName: string): MetadataError; /** Thrown when a filter flagged with `rls` is declared on a non-root entity of an STI hierarchy. */ static rlsFilterOnNonRootStiEntity(meta: EntityMetadata, filterName: string): MetadataError; /** Thrown when a global (config or EM registered) filter is flagged with `rls`; RLS filters must be entity scoped. */ static rlsFilterMustBeEntityScoped(filterName: string): MetadataError; /** Thrown when an entity-scoped `rls` filter is registered at runtime via `em.addFilter()` instead of in metadata. */ static rlsFilterCannotBeRegisteredAtRuntime(filterName: string): MetadataError; /** Thrown when a filter's custom `setting` is used with more than one argument. */ static rlsFilterMultiArgSetting(filterName: string, args: string[]): MetadataError; /** Thrown when an `rls` filter's condition depends on runtime state and cannot be compiled to a static policy. */ static rlsFilterDependsOnRuntimeState(filterName: string): MetadataError; /** Thrown when an `rls` filter compares against a column whose type has no automatic session-variable cast. */ static rlsFilterUncastableType(filterName: string, columnType: string): MetadataError; /** Thrown when an `rls` filter references an argument outside of a direct comparison, which cannot be compiled. */ static rlsFilterUnsupportedCond(filterName: string): MetadataError; /** Thrown when an `rls` filter compares against a column the schema generator does not manage. */ static rlsFilterUnmanagedColumn(filterName: string, column: string): MetadataError; private static fromMessage; } /** Error thrown when an entity lookup fails to find the expected result. */ export declare class NotFoundError extends ValidationError { static findOneFailed(name: string, where: Dictionary | IPrimaryKey): NotFoundError; static findExactlyOneFailed(name: string, where: Dictionary | IPrimaryKey): NotFoundError; static failedToLoadProperty(name: string, propName: string, where: unknown): NotFoundError; } /** Error thrown when a transaction propagation requirement is not satisfied. */ export declare class TransactionStateError extends ValidationError { static requiredTransactionNotFound(propagation: string): TransactionStateError; static transactionNotAllowed(propagation: string): TransactionStateError; static invalidPropagation(propagation: string): TransactionStateError; }