import { type SQL } from 'drizzle-orm';
import type { PgTable } from 'drizzle-orm/pg-core';
/** 是否开启多租户隔离 */
export declare function isTenantEnabled(): boolean;
/** 表是否含 tenantId 列 */
export declare function tableHasTenantId(table: PgTable): boolean;
/**
 * 当前请求租户作用域
 * - off：不隔离
 * - all：超管 / noTenant，看全量
 * - none：已开启但无 tenantId，匹配不到任何行
 * - number：按该租户过滤
 */
export declare function resolveTenantScope(): 'off' | 'all' | 'none' | number;
/** 拼租户 where；无隔离时返回原 where */
export declare function applyTenantWhere(table: PgTable, where?: SQL): SQL | undefined;
/** 写入时自动带上 tenantId（仅普通租户用户） */
export declare function stampTenantId<T extends Record<string, unknown>>(table: PgTable, data: T): T;
/**
 * 局部关闭租户过滤（跨租户查询、登录、权限菜单等）
 */
export declare function noTenant<T>(fn: () => Promise<T>): Promise<T>;
/** 规范化 Host：小写、去端口 */
export declare function normalizeHost(host: string | null | undefined): string;
