import { NamespaceAdapter } from '../index.js'; type TypeORMRepository = { findOne: (options: { where: Record; select?: Record; }) => Promise | null>; }; type TypeORMDataSource = { getRepository: (entity: unknown) => TypeORMRepository; }; type ILikeFn = (value: string) => unknown; /** * Create a namespace adapter for TypeORM * * @example * ```ts * import { DataSource } from "typeorm"; * import { createNamespaceGuard } from "namespace-guard"; * import { createTypeORMAdapter } from "namespace-guard/adapters/typeorm"; * import { User, Organization } from "./entities"; * * const dataSource = new DataSource({ ... }); * * const guard = createNamespaceGuard( * { * reserved: ["admin", "api", "settings"], * sources: [ * { name: "user", column: "handle", scopeKey: "id" }, * { name: "organization", column: "slug", scopeKey: "id" }, * ], * }, * createTypeORMAdapter(dataSource, { user: User, organization: Organization }) * ); * * // For case-insensitive matching, pass ILike: * // import { ILike } from "typeorm"; * // createTypeORMAdapter(dataSource, entities, ILike) * ``` */ declare function createTypeORMAdapter(dataSource: TypeORMDataSource, entities: Record, ilike?: ILikeFn): NamespaceAdapter; export { createTypeORMAdapter };