import { type TSchema } from '../types/schema.mjs'; import { type TProperties } from '../types/properties.mjs'; import { type TCyclic } from '../types/cyclic.mjs'; import { type TUnknown } from '../types/unknown.mjs'; import { type TUnsafe } from '../types/unsafe.mjs'; import { type TExtendsLeft } from './extends_left.mjs'; import { type TCyclicExtends } from '../engine/cyclic/index.mjs'; type TCanonical = (Type extends TCyclic ? TCyclicExtends : Type extends TUnsafe ? TUnknown : Type); /** Performs a structural extends check on left and right types and yields inferred types on right if specified. */ export type TExtends, CanonicalRight extends TSchema = TCanonical> = TExtendsLeft; /** Performs a structural extends check on left and right types and yields inferred types on right if specified. */ export declare function Extends(inferred: Inferred, left: Left, right: Right): TExtends; export {};