import type { EntityCompanion, EntityPrivacyPolicy, EntityPrivacyPolicyEvaluationContext, EntityQueryContext, IEntityMetricsAdapter, ReadonlyEntity, ViewerContext } from '@expo/entity'; import { AuthorizationResultBasedKnexEntityLoader } from './AuthorizationResultBasedKnexEntityLoader.ts'; import { EnforcingKnexEntityLoader } from './EnforcingKnexEntityLoader.ts'; import type { EntityKnexDataManager } from './internal/EntityKnexDataManager.ts'; /** * The primary entry point for loading entities via knex queries (non-data-loader methods). */ export declare class KnexEntityLoaderFactory, TIDField extends keyof NonNullable>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity, TPrivacyPolicy extends EntityPrivacyPolicy, TSelectedFields extends keyof TFields> { private readonly entityCompanion; private readonly knexDataManager; protected readonly metricsAdapter: IEntityMetricsAdapter; constructor(entityCompanion: EntityCompanion, knexDataManager: EntityKnexDataManager, metricsAdapter: IEntityMetricsAdapter); /** * Vend knex loader for loading an entity in a given query context. * @param viewerContext - viewer context of loading user * @param queryContext - query context in which to perform the load */ forLoad(viewerContext: TViewerContext, queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext): AuthorizationResultBasedKnexEntityLoader; /** * Vend enforcing knex loader for loading an entity in a given query context. * @param viewerContext - viewer context of loading user * @param queryContext - query context in which to perform the load */ forLoadEnforcing(viewerContext: TViewerContext, queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext): EnforcingKnexEntityLoader; }