import { IWorker } from "../../../models"; import { SkillDefinition } from "../../../state"; import { ThemeProps } from "../../theme"; /** * Properties of Worker Skills. * * @typedef WorkerSkills.WorkerSkillsProps * @property {IWorker} worker - Worker * @property {Array} [availableSkills] - Available skills * @property {boolean} [editSkillsPermission] - permission to edit the skills */ export interface WorkerSkillsProps extends WorkerSkillsImplProps { } /** * Programmable properties of WorkerSkills. * * @typedef WorkerSkillsProps.WorkerSkillsProgrammableProps * @property {Array} [availableSkills] - Available skills * @property {boolean} [editSkillsPermission] - permission to edit the skills */ export type WorkerSkillsProgrammableProps = Partial>; export declare enum WorkerSkillsChildrenKeys { addSkills = "add-skills", skillsContainer = "skills-container", notificationContainer = "notification-container", noSkills = "no-skills", buttonsContainer = "buttons-container" } export declare enum NotificationTemplate { Error = "WorkerSkillsError", Saved = "WorkerSkillsSaved", Reverted = "WorkerSkillsReverted" } export interface Skill extends SkillDefinition { disabled?: boolean; level?: number; } export type SkillByNameType = { [name: string]: Skill; }; export interface WorkerSkillsState { workerSid: string; skillsByName: SkillByNameType; skillsByNameOriginal: SkillByNameType; notificationTemplate?: NotificationTemplate; } export interface WorkerSkillsImplProps extends ThemeProps { worker: IWorker; availableSkills?: Array; onClose?: Function; editSkillsPermission?: boolean; } /** * Properties of WorkerSkills. * * @typedef {object} WorkerSkills.WorkerSkillsChildrenProps * @property {IWorker} [worker] Worker object * @property {Array} [availableSkills] - Available skill * @property {boolean} [editSkillsPermission] - permission to edit the skills */ export type WorkerSkillsChildrenProps = Pick;