export declare type PrimitiveValueTypes = number | bigint | string | boolean | null | undefined; export declare type PrimitiveValueTypeNames = 'number' | 'integer' | 'bigint' | 'string' | 'boolean' | 'null' | 'undefined'; export declare type OptionalPrimitiveValueTypeNames = 'number?' | 'integer?' | 'bigint?' | 'string?' | 'boolean?' | 'null?' | 'undefined?'; export declare type PlaceholderTypeNames = 'never' | 'any' | 'unknown'; export declare type OptionalPlaceholderTypeNames = 'never?' | 'any?' | 'unknown?'; export declare enum ErrorTypes { InvalidDefinition = 1, Required = 2, TypeUnmatched = 3, AdditionalPropUnmatched = 4, RepeatQtyUnmatched = 5, SequenceUnmatched = 6, ValueRangeUnmatched = 7, ValuePatternUnmatched = 8, ValueLengthUnmatched = 9, ValueUnmatched = 10 } export declare type ErrorMessages = Partial<{ invalidDefinition: string; required: string; typeUnmatched: string; additionalPropUnmatched: string; repeatQtyUnmatched: string; sequenceUnmatched: string; valueRangeUnmatched: string; valuePatternUnmatched: string; valueLengthUnmatched: string; valueUnmatched: string; }>; export interface TypeAssertionBase { messageId?: string; message?: string; messages?: ErrorMessages; name?: string; typeName?: string; originalTypeName?: string; stereotype?: string; customConstraints?: string[]; customConstraintsArgs?: { [constraintName: string]: any; }; forceCast?: boolean; isRecordTypeField?: boolean; meta?: any; docComment?: string; passThruCodeBlock?: string; noOutput?: boolean; } export interface NeverTypeAssertion extends TypeAssertionBase { kind: 'never'; } export interface AnyTypeAssertion extends TypeAssertionBase { kind: 'any'; } export interface UnknownTypeAssertion extends TypeAssertionBase { kind: 'unknown'; } export interface PrimitiveTypeAssertionConstraints { minValue?: number | string | null; maxValue?: number | string | null; greaterThanValue?: number | string | null; lessThanValue?: number | string | null; minLength?: number | null; maxLength?: number | null; pattern?: RegExp | null; } export interface PrimitiveTypeAssertion extends TypeAssertionBase, PrimitiveTypeAssertionConstraints { kind: 'primitive'; primitiveName: PrimitiveValueTypeNames; } export interface PrimitiveValueTypeAssertion extends TypeAssertionBase { kind: 'primitive-value'; value: PrimitiveValueTypes; primitiveName?: 'bigint'; } export interface RepeatedAssertionConstraints { min: number | null; max: number | null; } export interface RepeatedAssertion extends TypeAssertionBase, RepeatedAssertionConstraints { kind: 'repeated'; repeated: TypeAssertion; } export interface SpreadAssertion extends TypeAssertionBase, RepeatedAssertionConstraints { kind: 'spread'; spread: TypeAssertion; } export interface SequenceAssertion extends TypeAssertionBase { kind: 'sequence'; sequence: TypeAssertion[]; } export interface OneOfAssertion extends TypeAssertionBase { kind: 'one-of'; oneOf: TypeAssertion[]; } export interface OptionalAssertion extends TypeAssertionBase { kind: 'optional'; optional: TypeAssertion; } export interface EnumAssertion extends TypeAssertionBase { kind: 'enum'; values: Array<[ string, // enum key number | string, string? ]>; isConst?: boolean; } export declare type ObjectAssertionMember = [ string, TypeAssertion ] | [ string, TypeAssertion, boolean ] | [ string, TypeAssertion, boolean, string ]; export declare type AdditionalPropsKey = Array<'string' | 'number' | RegExp>; export declare type AdditionalPropsMember = [ AdditionalPropsKey, TypeAssertion ] | [ AdditionalPropsKey, TypeAssertion, boolean ] | [ AdditionalPropsKey, TypeAssertion, boolean, string ]; export interface ObjectAssertion extends TypeAssertionBase { kind: 'object'; members: ObjectAssertionMember[]; additionalProps?: AdditionalPropsMember[]; baseTypes?: Array; } export interface AssertionSymlink extends TypeAssertionBase { kind: 'symlink'; symlinkTargetName: string; memberTree?: string[]; } export interface AssertionOperator extends TypeAssertionBase { kind: 'operator'; operator: string; operands: Array; } export declare type TypeAssertion = NeverTypeAssertion | AnyTypeAssertion | UnknownTypeAssertion | PrimitiveTypeAssertion | PrimitiveValueTypeAssertion | RepeatedAssertion | SpreadAssertion | SequenceAssertion | OneOfAssertion | OptionalAssertion | EnumAssertion | ObjectAssertion | AssertionSymlink | AssertionOperator; export interface SerializedSchemaInfo { version: string; ns: { [namespaceName: string]: { [typeName: string]: TypeAssertion; }; }; }