import { L as LiteralString } from '../../shared/better-auth.Bi8FQwDD.cjs'; import 'zod'; type SubArray = T[number][]; type Subset> = { [P in K]: SubArray; }; type Statements = { readonly [resource: string]: readonly LiteralString[]; }; type AccessControl = ReturnType>; type Role> = { authorize: (request: any, connector?: "OR" | "AND") => AuthortizeResponse; statements: TStatements; }; type AuthortizeResponse = { success: false; error: string; } | { success: true; error?: never; }; declare function role(statements: TStatements): { authorize(request: { [key in K]?: TStatements[key] | { actions: TStatements[key]; connector: "OR" | "AND"; }; }, connector?: "OR" | "AND"): AuthortizeResponse; statements: TStatements; }; declare function createAccessControl(s: TStatements): { newRole(statements: Subset): { authorize(request: K_1 extends infer T extends keyof Subset ? { [key in T]?: Subset[key] | { actions: Subset[key]; connector: "OR" | "AND"; } | undefined; } : never, connector?: "OR" | "AND"): AuthortizeResponse; statements: Subset; }; statements: TStatements; }; export { type AccessControl, type AuthortizeResponse, type Role, type Statements, type SubArray, type Subset, createAccessControl, role };