import { NamespaceAdapter } from '../index.mjs'; type KnexQueryBuilder = { select: (columns: string[]) => KnexQueryBuilder; where: (column: string, value: unknown) => KnexQueryBuilder; whereRaw: (raw: string, bindings: unknown[]) => KnexQueryBuilder; first: () => Promise | undefined>; }; type KnexInstance = { (tableName: string): KnexQueryBuilder; }; /** * Create a namespace adapter for Knex * * @example * ```ts * import Knex from "knex"; * import { createNamespaceGuard } from "namespace-guard"; * import { createKnexAdapter } from "namespace-guard/adapters/knex"; * * const knex = Knex({ client: "pg", connection: process.env.DATABASE_URL }); * * const guard = createNamespaceGuard( * { * reserved: ["admin", "api", "settings"], * sources: [ * { name: "users", column: "handle", scopeKey: "id" }, * { name: "organizations", column: "slug", scopeKey: "id" }, * ], * }, * createKnexAdapter(knex) * ); * ``` */ declare function createKnexAdapter(knex: KnexInstance): NamespaceAdapter; export { createKnexAdapter };