import { NeverTypeAssertion, AnyTypeAssertion, UnknownTypeAssertion, PrimitiveValueTypes, PrimitiveValueTypeNames, OptionalPrimitiveValueTypeNames, PlaceholderTypeNames, OptionalPlaceholderTypeNames, ErrorMessages, PrimitiveTypeAssertion, PrimitiveValueTypeAssertion, RepeatedAssertion, SpreadAssertion, SequenceAssertion, OptionalAssertion, EnumAssertion, AdditionalPropsKey, ObjectAssertion, AssertionSymlink, AssertionOperator, TypeAssertion } from './types';
export declare function picked(ty: TypeAssertion, ...names: string[]): ObjectAssertion | AssertionOperator;
export declare function omit(ty: TypeAssertion, ...names: string[]): ObjectAssertion | AssertionOperator;
export declare function partial(ty: TypeAssertion): TypeAssertion;
export declare function intersect(...types: TypeAssertion[]): TypeAssertion;
export declare function oneOf(...types: Array<PrimitiveValueTypes | TypeAssertion>): TypeAssertion;
export declare function subtract(...types: TypeAssertion[]): ObjectAssertion | AssertionOperator;
export declare function primitive(typeName: PrimitiveValueTypeNames | OptionalPrimitiveValueTypeNames | PlaceholderTypeNames | OptionalPlaceholderTypeNames): PrimitiveTypeAssertion | OptionalAssertion | NeverTypeAssertion | AnyTypeAssertion | UnknownTypeAssertion;
export declare function regexpPatternStringType(pattern: RegExp): PrimitiveTypeAssertion;
export declare function primitiveValue(value: PrimitiveValueTypes): PrimitiveValueTypeAssertion;
export declare function optional(ty: PrimitiveValueTypes | TypeAssertion): OptionalAssertion;
export declare function repeated(ty: PrimitiveValueTypeNames | TypeAssertion, option?: Partial<Pick<RepeatedAssertion, 'max'> & Pick<RepeatedAssertion, 'min'>>): RepeatedAssertion;
export declare function sequenceOf(...seq: Array<PrimitiveValueTypes | TypeAssertion>): SequenceAssertion;
export declare function spread(ty: PrimitiveValueTypes | TypeAssertion, option?: Partial<Pick<SpreadAssertion, 'max'> & Pick<SpreadAssertion, 'min'>>): SpreadAssertion;
export declare function enumType(...values: Array<[string, number | string | null, string?]>): EnumAssertion;
export declare function objectType(...members: Array<[
    string | AdditionalPropsKey,
    PrimitiveValueTypes | TypeAssertion,
    string?
]>): ObjectAssertion;
export declare function derived(ty: ObjectAssertion, ...exts: TypeAssertion[]): ObjectAssertion;
export declare function symlinkType(name: string): AssertionSymlink;
export declare function withName(ty: TypeAssertion, name: string): TypeAssertion;
export declare function withTypeName(ty: TypeAssertion, typeName: string): TypeAssertion;
export declare function withOriginalTypeName(ty: TypeAssertion, originalTypeName: string): TypeAssertion;
export declare function withDocComment(ty: TypeAssertion, docComment: string): TypeAssertion;
export declare function withRange(minValue: number | string, maxValue: number | string): (ty: PrimitiveTypeAssertion) => {
    optional: {
        minValue: string | number;
        maxValue: string | number;
        kind: "primitive";
        primitiveName: PrimitiveValueTypeNames;
        messageId?: string | undefined;
        message?: string | undefined;
        messages?: Partial<{
            invalidDefinition: string;
            required: string;
            typeUnmatched: string;
            additionalPropUnmatched: string;
            repeatQtyUnmatched: string;
            sequenceUnmatched: string;
            valueRangeUnmatched: string;
            valuePatternUnmatched: string;
            valueLengthUnmatched: string;
            valueUnmatched: string;
        }> | undefined;
        name?: string | undefined;
        typeName?: string | undefined;
        originalTypeName?: string | undefined;
        stereotype?: string | undefined;
        customConstraints?: string[] | undefined;
        customConstraintsArgs?: {
            [constraintName: string]: any;
        } | undefined;
        forceCast?: boolean | undefined;
        isRecordTypeField?: boolean | undefined;
        meta?: any;
        docComment?: string | undefined;
        passThruCodeBlock?: string | undefined;
        noOutput?: boolean | undefined;
        greaterThanValue?: string | number | null | undefined;
        lessThanValue?: string | number | null | undefined;
        minLength?: number | null | undefined;
        maxLength?: number | null | undefined;
        pattern?: RegExp | null | undefined;
    };
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
} | {
    minValue: string | number;
    maxValue: string | number;
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
};
export declare function withMinValue(minValue: number | string): (ty: PrimitiveTypeAssertion) => {
    optional: {
        minValue: string | number;
        kind: "primitive";
        primitiveName: PrimitiveValueTypeNames;
        messageId?: string | undefined;
        message?: string | undefined;
        messages?: Partial<{
            invalidDefinition: string;
            required: string;
            typeUnmatched: string;
            additionalPropUnmatched: string;
            repeatQtyUnmatched: string;
            sequenceUnmatched: string;
            valueRangeUnmatched: string;
            valuePatternUnmatched: string;
            valueLengthUnmatched: string;
            valueUnmatched: string;
        }> | undefined;
        name?: string | undefined;
        typeName?: string | undefined;
        originalTypeName?: string | undefined;
        stereotype?: string | undefined;
        customConstraints?: string[] | undefined;
        customConstraintsArgs?: {
            [constraintName: string]: any;
        } | undefined;
        forceCast?: boolean | undefined;
        isRecordTypeField?: boolean | undefined;
        meta?: any;
        docComment?: string | undefined;
        passThruCodeBlock?: string | undefined;
        noOutput?: boolean | undefined;
        maxValue?: string | number | null | undefined;
        greaterThanValue?: string | number | null | undefined;
        lessThanValue?: string | number | null | undefined;
        minLength?: number | null | undefined;
        maxLength?: number | null | undefined;
        pattern?: RegExp | null | undefined;
    };
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
} | {
    minValue: string | number;
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
};
export declare function withMaxValue(maxValue: number | string): (ty: PrimitiveTypeAssertion) => {
    optional: {
        maxValue: string | number;
        kind: "primitive";
        primitiveName: PrimitiveValueTypeNames;
        messageId?: string | undefined;
        message?: string | undefined;
        messages?: Partial<{
            invalidDefinition: string;
            required: string;
            typeUnmatched: string;
            additionalPropUnmatched: string;
            repeatQtyUnmatched: string;
            sequenceUnmatched: string;
            valueRangeUnmatched: string;
            valuePatternUnmatched: string;
            valueLengthUnmatched: string;
            valueUnmatched: string;
        }> | undefined;
        name?: string | undefined;
        typeName?: string | undefined;
        originalTypeName?: string | undefined;
        stereotype?: string | undefined;
        customConstraints?: string[] | undefined;
        customConstraintsArgs?: {
            [constraintName: string]: any;
        } | undefined;
        forceCast?: boolean | undefined;
        isRecordTypeField?: boolean | undefined;
        meta?: any;
        docComment?: string | undefined;
        passThruCodeBlock?: string | undefined;
        noOutput?: boolean | undefined;
        minValue?: string | number | null | undefined;
        greaterThanValue?: string | number | null | undefined;
        lessThanValue?: string | number | null | undefined;
        minLength?: number | null | undefined;
        maxLength?: number | null | undefined;
        pattern?: RegExp | null | undefined;
    };
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
} | {
    maxValue: string | number;
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
};
export declare function withGreaterThan(greaterThanValue: number | string): (ty: PrimitiveTypeAssertion) => {
    optional: {
        greaterThanValue: string | number;
        kind: "primitive";
        primitiveName: PrimitiveValueTypeNames;
        messageId?: string | undefined;
        message?: string | undefined;
        messages?: Partial<{
            invalidDefinition: string;
            required: string;
            typeUnmatched: string;
            additionalPropUnmatched: string;
            repeatQtyUnmatched: string;
            sequenceUnmatched: string;
            valueRangeUnmatched: string;
            valuePatternUnmatched: string;
            valueLengthUnmatched: string;
            valueUnmatched: string;
        }> | undefined;
        name?: string | undefined;
        typeName?: string | undefined;
        originalTypeName?: string | undefined;
        stereotype?: string | undefined;
        customConstraints?: string[] | undefined;
        customConstraintsArgs?: {
            [constraintName: string]: any;
        } | undefined;
        forceCast?: boolean | undefined;
        isRecordTypeField?: boolean | undefined;
        meta?: any;
        docComment?: string | undefined;
        passThruCodeBlock?: string | undefined;
        noOutput?: boolean | undefined;
        minValue?: string | number | null | undefined;
        maxValue?: string | number | null | undefined;
        lessThanValue?: string | number | null | undefined;
        minLength?: number | null | undefined;
        maxLength?: number | null | undefined;
        pattern?: RegExp | null | undefined;
    };
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
} | {
    greaterThanValue: string | number;
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
};
export declare function withLessThan(lessThanValue: number | string): (ty: PrimitiveTypeAssertion) => {
    optional: {
        lessThanValue: string | number;
        kind: "primitive";
        primitiveName: PrimitiveValueTypeNames;
        messageId?: string | undefined;
        message?: string | undefined;
        messages?: Partial<{
            invalidDefinition: string;
            required: string;
            typeUnmatched: string;
            additionalPropUnmatched: string;
            repeatQtyUnmatched: string;
            sequenceUnmatched: string;
            valueRangeUnmatched: string;
            valuePatternUnmatched: string;
            valueLengthUnmatched: string;
            valueUnmatched: string;
        }> | undefined;
        name?: string | undefined;
        typeName?: string | undefined;
        originalTypeName?: string | undefined;
        stereotype?: string | undefined;
        customConstraints?: string[] | undefined;
        customConstraintsArgs?: {
            [constraintName: string]: any;
        } | undefined;
        forceCast?: boolean | undefined;
        isRecordTypeField?: boolean | undefined;
        meta?: any;
        docComment?: string | undefined;
        passThruCodeBlock?: string | undefined;
        noOutput?: boolean | undefined;
        minValue?: string | number | null | undefined;
        maxValue?: string | number | null | undefined;
        greaterThanValue?: string | number | null | undefined;
        minLength?: number | null | undefined;
        maxLength?: number | null | undefined;
        pattern?: RegExp | null | undefined;
    };
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
} | {
    lessThanValue: string | number;
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
};
export declare function withMinLength(minLength: number): (ty: PrimitiveTypeAssertion) => {
    optional: {
        minLength: number;
        kind: "primitive";
        primitiveName: PrimitiveValueTypeNames;
        messageId?: string | undefined;
        message?: string | undefined;
        messages?: Partial<{
            invalidDefinition: string;
            required: string;
            typeUnmatched: string;
            additionalPropUnmatched: string;
            repeatQtyUnmatched: string;
            sequenceUnmatched: string;
            valueRangeUnmatched: string;
            valuePatternUnmatched: string;
            valueLengthUnmatched: string;
            valueUnmatched: string;
        }> | undefined;
        name?: string | undefined;
        typeName?: string | undefined;
        originalTypeName?: string | undefined;
        stereotype?: string | undefined;
        customConstraints?: string[] | undefined;
        customConstraintsArgs?: {
            [constraintName: string]: any;
        } | undefined;
        forceCast?: boolean | undefined;
        isRecordTypeField?: boolean | undefined;
        meta?: any;
        docComment?: string | undefined;
        passThruCodeBlock?: string | undefined;
        noOutput?: boolean | undefined;
        minValue?: string | number | null | undefined;
        maxValue?: string | number | null | undefined;
        greaterThanValue?: string | number | null | undefined;
        lessThanValue?: string | number | null | undefined;
        maxLength?: number | null | undefined;
        pattern?: RegExp | null | undefined;
    };
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
} | {
    minLength: number;
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
};
export declare function withMaxLength(maxLength: number): (ty: PrimitiveTypeAssertion) => {
    optional: {
        maxLength: number;
        kind: "primitive";
        primitiveName: PrimitiveValueTypeNames;
        messageId?: string | undefined;
        message?: string | undefined;
        messages?: Partial<{
            invalidDefinition: string;
            required: string;
            typeUnmatched: string;
            additionalPropUnmatched: string;
            repeatQtyUnmatched: string;
            sequenceUnmatched: string;
            valueRangeUnmatched: string;
            valuePatternUnmatched: string;
            valueLengthUnmatched: string;
            valueUnmatched: string;
        }> | undefined;
        name?: string | undefined;
        typeName?: string | undefined;
        originalTypeName?: string | undefined;
        stereotype?: string | undefined;
        customConstraints?: string[] | undefined;
        customConstraintsArgs?: {
            [constraintName: string]: any;
        } | undefined;
        forceCast?: boolean | undefined;
        isRecordTypeField?: boolean | undefined;
        meta?: any;
        docComment?: string | undefined;
        passThruCodeBlock?: string | undefined;
        noOutput?: boolean | undefined;
        minValue?: string | number | null | undefined;
        maxValue?: string | number | null | undefined;
        greaterThanValue?: string | number | null | undefined;
        lessThanValue?: string | number | null | undefined;
        minLength?: number | null | undefined;
        pattern?: RegExp | null | undefined;
    };
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
} | {
    maxLength: number;
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
};
export declare function withMatch(pattern: RegExp): (ty: PrimitiveTypeAssertion) => {
    optional: {
        pattern: RegExp;
        kind: "primitive";
        primitiveName: PrimitiveValueTypeNames;
        messageId?: string | undefined;
        message?: string | undefined;
        messages?: Partial<{
            invalidDefinition: string;
            required: string;
            typeUnmatched: string;
            additionalPropUnmatched: string;
            repeatQtyUnmatched: string;
            sequenceUnmatched: string;
            valueRangeUnmatched: string;
            valuePatternUnmatched: string;
            valueLengthUnmatched: string;
            valueUnmatched: string;
        }> | undefined;
        name?: string | undefined;
        typeName?: string | undefined;
        originalTypeName?: string | undefined;
        stereotype?: string | undefined;
        customConstraints?: string[] | undefined;
        customConstraintsArgs?: {
            [constraintName: string]: any;
        } | undefined;
        forceCast?: boolean | undefined;
        isRecordTypeField?: boolean | undefined;
        meta?: any;
        docComment?: string | undefined;
        passThruCodeBlock?: string | undefined;
        noOutput?: boolean | undefined;
        minValue?: string | number | null | undefined;
        maxValue?: string | number | null | undefined;
        greaterThanValue?: string | number | null | undefined;
        lessThanValue?: string | number | null | undefined;
        minLength?: number | null | undefined;
        maxLength?: number | null | undefined;
    };
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
    pattern?: RegExp | null | undefined;
} | {
    pattern: RegExp;
    kind: "primitive";
    primitiveName: PrimitiveValueTypeNames;
    messageId?: string | undefined;
    message?: string | undefined;
    messages?: Partial<{
        invalidDefinition: string;
        required: string;
        typeUnmatched: string;
        additionalPropUnmatched: string;
        repeatQtyUnmatched: string;
        sequenceUnmatched: string;
        valueRangeUnmatched: string;
        valuePatternUnmatched: string;
        valueLengthUnmatched: string;
        valueUnmatched: string;
    }> | undefined;
    name?: string | undefined;
    typeName?: string | undefined;
    originalTypeName?: string | undefined;
    stereotype?: string | undefined;
    customConstraints?: string[] | undefined;
    customConstraintsArgs?: {
        [constraintName: string]: any;
    } | undefined;
    forceCast?: boolean | undefined;
    isRecordTypeField?: boolean | undefined;
    meta?: any;
    docComment?: string | undefined;
    passThruCodeBlock?: string | undefined;
    noOutput?: boolean | undefined;
    minValue?: string | number | null | undefined;
    maxValue?: string | number | null | undefined;
    greaterThanValue?: string | number | null | undefined;
    lessThanValue?: string | number | null | undefined;
    minLength?: number | null | undefined;
    maxLength?: number | null | undefined;
};
export declare function withStereotype<T extends TypeAssertion>(stereotype: string): (ty: T) => T;
export declare function withConstraint<T extends TypeAssertion>(name: string, args?: any): (ty: T) => T;
export declare function withForceCast<T extends TypeAssertion>(): (ty: T) => T;
export declare function withRecordType<T extends TypeAssertion>(): (ty: T) => T;
export declare function withMeta<T extends TypeAssertion>(meta: any): (ty: T) => T;
export declare function withMsg<T extends TypeAssertion>(messages: string | ErrorMessages): (ty: T) => T;
export declare function withMsgId<T extends TypeAssertion>(messageId: string): (ty: T) => T;
