import { type SQL } from 'drizzle-orm';
import type { PgTable } from 'drizzle-orm/pg-core';
/** 表是否含 departmentId 列（行级数据权限） */
export declare function tableHasDepartmentId(table: PgTable): boolean;
/**
 * 当前请求数据范围
 * - off：未写入 / noDataScope，不过滤
 * - all：超管或角色 dataScope=全部
 * - none：自定义但无部门，匹配不到任何行
 * - number[]：按部门 ID 列表过滤
 *
 * Context 约定（宿主写入）：
 * - dataScope: 'all' | 'none' | 'custom'
 * - dataScopeDeptIds: number[]（custom 时）
 */
export declare function resolveDataScope(): 'off' | 'all' | 'none' | number[];
/** 拼数据范围 where；无隔离时返回原 where */
export declare function applyDataScopeWhere(table: PgTable, where?: SQL): SQL | undefined;
/** 租户 + 数据范围（Repository / queryWithOp 统一入口） */
export declare function applyRowScopes(table: PgTable, where?: SQL): SQL | undefined;
/**
 * 局部关闭数据范围过滤（权限解析、跨范围配置等）
 */
export declare function noDataScope<T>(fn: () => Promise<T>): Promise<T>;
