import {Service} from '@e22m4u/js-service'; import {ProjectDataOptions} from './project-data.js'; import {ProjectionSchemaDefinition} from './definitions/index.js'; import { ProjectionSchema, ProjectionSchemaName, ProjectionSchemaFactory, } from './projection-schema.js'; /** * Data projector. */ export class DataProjector extends Service { /** * Define schema. * * @param schemaDef */ defineSchema(schemaDef: ProjectionSchemaDefinition): this; /** * Has schema. * * @param schemaName */ hasSchema(schemaName: ProjectionSchemaName): boolean; /** * Project. * * @param schemaOrFactory * @param data * @param options */ project( schemaOrFactory: | ProjectionSchema | ProjectionSchemaFactory | ProjectionSchemaName, data: T, options?: Omit, ): T; }