/**
 * Rôles d'utilisateur dans le système
 */
export declare const USER_ROLES: {
    readonly AGENT: "agent";
    readonly ADMIN: "admin";
    readonly KITCHEN: "kitchen";
    readonly MANAGER: "manager";
};
export type UserRole = typeof USER_ROLES[keyof typeof USER_ROLES];
/**
 * Permissions par rôle
 */
export declare const ROLE_PERMISSIONS: {
    readonly agent: readonly ["view_menu", "create_order", "view_own_orders", "cancel_own_order", "update_profile", "view_recommendations"];
    readonly kitchen: readonly ["view_menu", "view_all_orders", "update_order_status", "manage_inventory", "view_kitchen_analytics"];
    readonly manager: readonly ["view_menu", "manage_menu", "view_all_orders", "view_analytics", "manage_promotions", "export_data"];
    readonly admin: readonly ["view_menu", "manage_menu", "view_all_orders", "update_order_status", "manage_inventory", "view_analytics", "manage_users", "manage_promotions", "system_settings", "export_data", "manage_ai_settings"];
};
/**
 * Libellés d'affichage pour les rôles
 */
export declare const ROLE_LABELS: Record<UserRole, string>;
/**
 * Descriptions des rôles
 */
export declare const ROLE_DESCRIPTIONS: Record<UserRole, string>;
/**
 * Hiérarchie des rôles (du plus bas au plus élevé)
 */
export declare const ROLE_HIERARCHY: UserRole[];
/**
 * Vérifie si un utilisateur a une permission spécifique
 */
export declare function hasPermission(userRole: UserRole, permission: string): boolean;
/**
 * Vérifie si un rôle a un niveau hiérarchique supérieur ou égal à un autre
 */
export declare function hasRoleLevel(userRole: UserRole, requiredRole: UserRole): boolean;
/**
 * Obtient toutes les permissions d'un rôle
 */
export declare function getRolePermissions(userRole: UserRole): readonly string[];
/**
 * Vérifie si un utilisateur peut effectuer une action sur une commande
 */
export declare function canManageOrder(userRole: UserRole, orderUserId: string, currentUserId: string): boolean;
/**
 * Départements disponibles pour les agents
 */
export declare const DEPARTMENTS: {
    readonly IT: "IT";
    readonly MARKETING: "Marketing";
    readonly SALES: "Commercial";
    readonly HR: "Ressources Humaines";
    readonly FINANCE: "Finance";
    readonly OPERATIONS: "Opérations";
    readonly DESIGN: "Design";
    readonly LEGAL: "Juridique";
};
export type Department = typeof DEPARTMENTS[keyof typeof DEPARTMENTS];
/**
 * Libellés des départements
 */
export declare const DEPARTMENT_LABELS: Record<Department, string>;
//# sourceMappingURL=userRoles.d.ts.map