import {Service, ServiceContainer} from '@e22m4u/js-service'; import {DataSchema, DataSchemaObject} from './data-schema.js'; import {DataSchemaDefinition} from './data-schema-definition.js'; /** * Data parsing option. */ export type DataParsingOptions = { sourcePath?: string; shallowMode?: boolean; noParsingErrors?: boolean; }; /** * Data parsing function. */ export type DataParsingFunction = ( value: unknown, schema: DataSchemaObject, options: DataParsingOptions | undefined, container: ServiceContainer, ) => unknown; /** * Data parser. */ export declare class DataParser extends Service { /** * Get parsers. */ getParsers(): DataParsingFunction[]; /** * Set parsers. * * @param list */ setParsers(list: DataParsingFunction[]): this; /** * Define schema. * * @param schemaDef */ defineSchema(schemaDef: DataSchemaDefinition): this; /** * Has schema. * * @param schemaName */ hasSchema(schemaName: string): boolean; /** * Get schema. * * @param schemaName */ getSchema(schemaName: string): DataSchema; /** * Parse. * * @param value * @param schema * @param options */ parse( value: unknown, schema: DataSchema, options?: DataParsingOptions, ): T; }