import { MedusaContainer } from "@medusajs/framework/types";
export type PermissionAction = {
    resource: string;
    operation: string | string[];
};
export type HasPermissionInput = {
    roles: string | string[];
    actions: PermissionAction | PermissionAction[];
    container: MedusaContainer;
};
/**
 * Checks if the given role(s) have permission to perform the specified action(s).
 *
 * @param input - The input containing roles, actions, and container
 * @returns true if all actions are permitted, false otherwise
 *
 * @example
 * ```ts
 * const canWrite = await hasPermission({
 *   roles: ['role_123'],
 *   actions: { resource: 'product', operation: 'write' },
 *   container
 * })
 *
 * const canDeleteAndWrite = await hasPermission({
 *   roles: ['role_123'],
 *   actions: { resource: 'product', operation: ['delete', 'write'] },
 *   container
 * })
 * ```
 */
export declare function hasPermission(input: HasPermissionInput): Promise<boolean>;
//# sourceMappingURL=has-permission.d.ts.map