import { o as LiteralString } from "./helper-BBvhhJRX.mjs"; //#region src/plugins/access/types.d.ts type SubArray = T$1[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") | undefined) => AuthorizeResponse; statements: TStatements; }; //#endregion //#region src/plugins/access/access.d.ts type AuthorizeResponse = { success: false; error: string; } | { success: true; error?: never | undefined; }; declare function role(statements: TStatements): { authorize(request: { [key in K]?: TStatements[key] | { actions: TStatements[key]; connector: "OR" | "AND"; } }, connector?: "OR" | "AND"): AuthorizeResponse; 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"): AuthorizeResponse; statements: Subset; }; statements: TStatements; }; //#endregion export { Role as a, Subset as c, AccessControl as i, createAccessControl as n, Statements as o, role as r, SubArray as s, AuthorizeResponse as t };