import type { Static } from '@sinclair/typebox' import { Logger } from 'besonders-logger' import { getMappedVMtoExtend } from './MappedVMbase' import { TypeMap } from './TypeMap' const { WARN, LOG, DEBUG, VERBOSE, ERROR } = Logger.setup(Logger.INFO) // eslint-disable-line unused-imports/no-unused-vars const DEF = TypeMap.Provider export type Provider = Static export interface ProviderVM extends Provider {} export class ProviderVM extends getMappedVMtoExtend('Provider', DEF) {} // export const { 'Wovin/provider': PROVIDER } = knownAtMap // export const PROVI_ATTRS = Object.values(PROVIDER) // export const PROVIDER_VMNAME = 'Wovin/provider' as const // type ProviderT = VMstatic // export interface ProviderVM extends ProviderT /* , ReturnType> */ {} // export class ProviderVM extends getMappedVMtoExtend(PROVIDER_VMNAME) { // } // export const ProviderBuilder = ObjectBuilder // ? deprecate - prefer VM.buildNew() ? // TODO: runtime/typebox checking is not actually bound here, just TS generics // export const useProvider = getUseFx(PROVIDER_VMNAME, ProviderVM, ProviderBuilder)