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[], pass:Map, mode:string, role:Role[]}; export type Work = [user:User, time:number, data:string]; export type Pass = {name:string, path:string, live:boolean, load:()=Promise, dump:()=>void}; export type Part = {name:string, pass:Map, need:Desk[], make:Desk[]}; export type GraphBuilder= < Users extends Record, Roles extends Record]>, Parts extends Record, Desks extends Record, mode:"all"|"one", need:Partial>, ...make:Array]>, > ( params:{ meta?:{name:string}, user:Users, role:Roles, part:Parts, desk:Desks, pass:Record, }, folderHandle:FileSystemDirectoryHandle, folderName:string ) =>{ Desk:Record, Part:Record, User:Record, Role:Record, Pass:Record } export type MassDscription= ( params:Record[0]> ) =>(folder:FileSystemDirectoryHandle)=>Record> export type Scanner =(desk:Desk, pass:Pass)=>void;