import memoize from 'memoizee'; export declare const getGuestActorId: (() => Promise) & memoize.Memoized<() => Promise>; export declare const getOrInsertRoleId: (name: string, tx: Tx) => Promise<{ id: number; }>; export declare const getOrInsertPermissionId: (name: string, tx: Tx) => Promise<{ id: number; }>; export declare const assignRolePermission: (role: number, permission: number, tx: Tx) => Promise<{ id: number; }>; export declare const assignUserRole: (user: number, role: number, tx: Tx) => Promise<{ id: number; }>; export declare const assignUserPermission: (user: number, permission: number, tx: Tx) => Promise<{ id: number; }>; export declare const revokeUserRole: (user: number, role: number, tx: Tx) => Promise; export declare const setApiKey: (roleName: string, apiKeyPermissions: string[], key: string, tx: Tx) => Promise; api_key__has__permission?: Array; }, "id" | "key">>; export type PermissionSet = string[]; export interface RolePermissionsMap { [roleName: string]: PermissionSet; } export interface ApiKeyPermissionsMap { [keyName: string]: { key?: string; permissions: PermissionSet; }; } export type EmailSet = string[]; export interface UserRoleMap { [roleName: string]: EmailSet; } export declare function createAllPermissions(tx: Tx, permissionNames: PermissionSet, roleMap: RolePermissionsMap, apiKeyMap: ApiKeyPermissionsMap, userMap: UserRoleMap): Promise<{ roles: { [x: string]: { id: number; }; }; apiKeys: (string | undefined)[]; }>;