import { NamespaceAdapter } from '../index.mjs'; type DrizzleTable = { [key: string]: unknown; }; type DrizzleDb = { query: { [key: string]: { findFirst: (args: { where: unknown; columns?: Record; }) => Promise | null>; }; }; }; type ComparisonFn = (column: unknown, value: unknown) => unknown; type DrizzleAdapterOptions = { /** The `eq` function from drizzle-orm */ eq: ComparisonFn; /** The `ilike` function from drizzle-orm (required when using caseInsensitive) */ ilike?: ComparisonFn; }; /** * Create a namespace adapter for Drizzle ORM * * @example * ```ts * import { eq } from "drizzle-orm"; * import { db } from "./db"; * import { users, organizations } from "./schema"; * import { createNamespaceGuard } from "namespace-guard"; * import { createDrizzleAdapter } from "namespace-guard/adapters/drizzle"; * * const guard = createNamespaceGuard( * { * reserved: ["admin", "api", "settings"], * sources: [ * { name: "users", column: "handle", scopeKey: "id" }, * { name: "organizations", column: "slug", scopeKey: "id" }, * ], * }, * createDrizzleAdapter(db, { users, organizations }, eq) * ); * ``` */ declare function createDrizzleAdapter(db: DrizzleDb, tables: Record, eqOrOptions: ComparisonFn | DrizzleAdapterOptions): NamespaceAdapter; export { createDrizzleAdapter };