import { z } from "zod"; type AuthzAction = "read" | "create" | "update" | "delete"; declare const AUTHZ_ACTIONS: readonly [ "read", "create", "update", "delete" ]; declare const RESERVED_ROLE_AUTHENTICATED = "@authenticated"; declare const RESERVED_ROLE_ANONYMOUS = "@anonymous"; declare const MAX_SAFE_SCOPE_INTEGER: number; declare const rowFilterSchema: z.ZodObject<{ field: z.ZodString; op: z.ZodEnum<[ "in", "notIn", "eq", "ne" ]>; values: z.ZodArray, z.ZodBoolean, z.ZodNull ]>, "many">; }, "strip", z.ZodTypeAny, { field: string; op: "in" | "notIn" | "eq" | "ne"; values: (string | number | boolean | null)[]; }, { field: string; op: "in" | "notIn" | "eq" | "ne"; values: (string | number | boolean | null)[]; }>; type RowFilter = z.infer; declare const rowScopeSchema: z.ZodObject<{ filters: z.ZodArray; values: z.ZodArray, z.ZodBoolean, z.ZodNull ]>, "many">; }, "strip", z.ZodTypeAny, { field: string; op: "in" | "notIn" | "eq" | "ne"; values: (string | number | boolean | null)[]; }, { field: string; op: "in" | "notIn" | "eq" | "ne"; values: (string | number | boolean | null)[]; }>, "many">; }, "strip", z.ZodTypeAny, { filters: { field: string; op: "in" | "notIn" | "eq" | "ne"; values: (string | number | boolean | null)[]; }[]; }, { filters: { field: string; op: "in" | "notIn" | "eq" | "ne"; values: (string | number | boolean | null)[]; }[]; }>; type RowScope = z.infer; declare const columnScopeSchema: z.ZodObject<{ mode: z.ZodEnum<[ "allow", "deny" ]>; columns: z.ZodArray; }, "strip", z.ZodTypeAny, { mode: "allow" | "deny"; columns: string[]; }, { mode: "allow" | "deny"; columns: string[]; }>; type ColumnScope = z.infer; type ActionScope = { rowScope: RowScope | null; columnScope: ColumnScope | null; }; type ParsedRowScope = RowScope | null | "denyAll"; declare const DENY_ALL: "denyAll"; type MergedRowScope = { anyOf: RowScope[]; } | null; type MergedScope = { rowScope: MergedRowScope; columnScope: ColumnScope | null; }; type EffectivePermission = { userId: string | number | null; tenantId: string; actions: Set; scopeByAction: Partial>; }; export { type AuthzAction as A, type ColumnScope as C, DENY_ALL as D, type EffectivePermission as E, type MergedScope as M, type ParsedRowScope as P, type RowScope as R, type MergedRowScope as a, AUTHZ_ACTIONS as b, type ActionScope as c, MAX_SAFE_SCOPE_INTEGER as d, RESERVED_ROLE_ANONYMOUS as e, RESERVED_ROLE_AUTHENTICATED as f, type RowFilter as g, columnScopeSchema as h, rowScopeSchema as i, rowFilterSchema as r };