import type { StreamReader } from '@ceramicnetwork/common'; import { type ModelDefinition, type ModelRelationsDefinitionV2, type ModelViewsDefinitionV2 } from '@ceramicnetwork/stream-model'; import type { JSONSchema } from 'json-schema-typed/draft-2020-12'; export declare type Schema = Exclude; export declare type ValidationErrorData = { path: Array; property?: string; index?: number; expected: unknown; actual?: unknown; }; export declare function getErrorMessage(data: ValidationErrorData): string; export declare class ValidationError extends Error implements ValidationErrorData { path: Array; property?: string; index?: number; expected: unknown; actual: unknown; constructor(data: ValidationErrorData, message?: string); } export declare type Resolvers = { resolveExpected: (schema: Schema) => Schema | null; resolveImplemented: (schema: Schema) => Schema | null; }; export declare type ValidationContext = Resolvers & { path: Array; }; export declare function childContext(ctx: ValidationContext, key: string): ValidationContext; export declare function resolveReference(childSchema: Schema, parentSchema: Schema): Schema | null; export declare function validateInterface(model: ModelDefinition): void; export declare function validateArraySchema(context: ValidationContext, expected: JSONSchema.Array, implemented: JSONSchema.Array): Array; export declare function validateBooleanSchema(context: ValidationContext, expected: JSONSchema.Boolean, implemented: JSONSchema.Boolean): Array; export declare function validateObjectSchema(context: ValidationContext, expected: JSONSchema.Object, implemented: JSONSchema.Object): Array; export declare function validateNumberSchema(context: ValidationContext, expected: JSONSchema.Number, implemented: JSONSchema.Number): Array; export declare function validateStringSchema(context: ValidationContext, expected: JSONSchema.String, implemented: JSONSchema.String): Array; export declare function validateAllSchemaTypes(context: ValidationContext, expectedList: Array | ReadonlyArray, implementedList: Array | ReadonlyArray): Array; export declare function validateAnySchemaTypes(context: ValidationContext, expectedList: Array | ReadonlyArray, implementedList: Array | ReadonlyArray): Array; export declare function validateSchemaType(context: ValidationContext, expected: JSONSchema, implemented: JSONSchema): Array; export declare function createResolvers(expected: JSONSchema.Object, implemented: JSONSchema.Object): Resolvers; export declare function validateSchemaImplementation(expected: JSONSchema.Object, implemented: JSONSchema.Object): Array; export declare function isValidRelationsImplementation(expected?: ModelRelationsDefinitionV2, implemented?: ModelRelationsDefinitionV2): boolean; export declare function isValidViewsImplementation(expected?: ModelViewsDefinitionV2, implemented?: ModelViewsDefinitionV2): boolean; export declare function validateInterfaceImplementation(interfaceID: string, expected: ModelDefinition, implemented: ModelDefinition): void; export declare function validateImplementedInterfaces(model: ModelDefinition, context: StreamReader): Promise; export declare function isValidImmutabilityImplementation(expected: ModelDefinition, implemented: ModelDefinition): boolean; //# sourceMappingURL=interfaces-utils.d.ts.map