import { type Permission } from '@tmlmobilidade/types'; /** * Get a scope and action filtered Permission object * from a list of User permissions. * @param permissions The full list of permissions of the user. * @param scope The resource scope of the permission to filter by. * @param action The action of the permission to filter by. * @returns The filtered Permission object. * @deprecated Use hasPermissionResource instead. */ export declare function getPermission(permissions: Permission[], scope: string, action: string): Permission; /** * Arguments for hasPermissionResource function. * @param T The type of the resource. */ export interface HasPermissionResourceArgs { action: string; permissions: Permission[]; resource_key: string; scope: string; value: unknown; } /** * Check if a permission exists in a list of permissions, with additional check for a given resource value. * If a `value` exists in a `resource` of a User `permissions` object that * matches the given `action` and `scope`. For example, if you want to check if * a user has access to a specific `agency_id`, you set `value=43` and `resource_key='agency_ids'`. * If the provided `permissions` object contains the value `43` inside the `scope='plans'`, * `action='create'` and `resource_key='agency_ids'` the function will return true. * @param permissions The list of permissions (from a user or request). * @param value The permission value to check against. * @param resource_key The key of the resource. * @param scope The scope of the permission. * @param action The action of the permission. * @returns The permission. * @deprecated Use hasPermissionResource instead. */ export declare function hasPermissionResource({ action, permissions, resource_key, scope, value }: HasPermissionResourceArgs): boolean; /** * Check if a value exists in a resource of a permission from Fastify request. * @param request The FastifyRequest. * @param params The parameters for checking permission. * @returns True if the user has the requested permission, false otherwise. * @deprecated Use hasPermissionResource instead. */ export declare function hasAPIResourcePermission(request: any, params: HasPermissionResourceArgs): boolean;