type PartBlueprint = string type UserBlueprint = string export type GraphBuilder= < Users extends Record, Roles extends Record]>, Parts extends Record, Desks extends Record, mode:"all"|"one", need:Partial>, ...make:Array]> > ( params:{users:Users, roles:Roles, parts:Parts, desks:Desks} ) =>void export type User = {name:string, desk:Set}; export type Role = {name:string, user:User[]}; export type Desk = {name:string, need:Part[], time:number[], make:Part[], mode:string, role:Role[]}; export type Work = [user:User, part:Part, time:number, data:string]; export type Part = {name:string, time:number, work:Work[], need:Desk[], make:Desk[]};