import { Memory } from '../../system/memory/index.mjs'; import { type TSchema } from '../types/schema.mjs'; import { type TProperties } from '../types/properties.mjs'; import { type TAny } from '../types/any.mjs'; import { type TDependent } from '../types/dependent.mjs'; import { type TEnum, type TEnumValue } from '../types/enum.mjs'; import { type TInfer } from '../types/infer.mjs'; import { type TIntersect } from '../types/intersect.mjs'; import { type TTemplateLiteral } from '../types/template_literal.mjs'; import { type TUnion } from '../types/union.mjs'; import { type TUnknown } from '../types/unknown.mjs'; import { type TExtendsLeft } from './extends_left.mjs'; import * as Result from './result.mjs'; import { type TEvaluateEnum } from '../engine/evaluate/evaluate.mjs'; import { type TEvaluateTemplateLiteral } from '../engine/evaluate/evaluate.mjs'; type TExtendsRightInfer extends Result.TExtendsTrueLike ? Result.TExtendsTrue, { [_ in Name]: Left; }>> : Result.TExtendsFalse)> = Result; type TExtendsRightAny> = Result; type TExtendsRightDependent extends Result.TExtendsTrueLike ? (TExtendsLeft extends Result.TExtendsTrueLike ? Result.TExtendsTrue : Result.TExtendsFalse) : (TExtendsLeft extends Result.TExtendsTrueLike ? Result.TExtendsTrue : Result.TExtendsFalse)> = Result; type TExtendsRightEnum> = TExtendsLeft; type TExtendsRightIntersect = (Right extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TExtendsLeft extends Result.TExtendsTrueLike ? TExtendsRightIntersect : Result.TExtendsFalse : Result.TExtendsTrue); type TExtendsRightTemplateLiteral> = TExtendsLeft; type TExtendsRightUnion = (Right extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TExtendsLeft extends Result.TExtendsTrueLike ? Result.TExtendsTrue : TExtendsRightUnion : Result.TExtendsFalse); export type TExtendsRight = (Right extends TAny ? TExtendsRightAny : Right extends TDependent ? TExtendsRightDependent : Right extends TEnum ? TExtendsRightEnum : Right extends TInfer ? TExtendsRightInfer : Right extends TTemplateLiteral ? TExtendsRightTemplateLiteral : Right extends TIntersect ? TExtendsRightIntersect : Right extends TUnion ? TExtendsRightUnion : Right extends TUnknown ? Result.TExtendsTrue : Result.TExtendsFalse); export declare function ExtendsRight(inferred: Inferred, left: Left, right: Right): TExtendsRight; export {};