UNPKG

@tpluscode/rdfine

Version:
32 lines (31 loc) 1.19 kB
import type DefaultEnv from '@zazuko/env/web.js'; import type { DerivedEnvironment } from '@zazuko/env'; import type { Environment } from '@rdfjs/environment/Environment.js'; import { Constructor, ResourceFactory } from './lib/ResourceFactory.js'; import type { Factory } from './factory.js'; import { ToLiteral, FromLiteral } from './lib/conversion.js'; type Name<T> = T extends `${infer Prefix}Mixin` ? Prefix : never; export type Vocabulary<T> = { [p in keyof T as Name<p>]: T[p] extends (...args: any) => any ? ReturnType<T[p]> extends Constructor<infer I> ? Factory<I> : never : never; }; export interface Rdfine { (): { createEntity: ResourceFactory['createEntity']; factory: ResourceFactory; convert: { toLiteral: ToLiteral; fromLiteral: FromLiteral; }; }; Resource: Constructor; } export interface RdfineFactory { rdfine: Rdfine; } export declare class RdfineFactory { init(this: any): void; static get exports(): string[]; _initVocabulary(vocabulary: Record<string, any>): any; } export type RdfineEnvironment = DerivedEnvironment<typeof DefaultEnv, Environment<RdfineFactory>>; export {};