import type { TSchema, SchemaOptions } from '../schema/index'; import type { Static } from '../static/index'; import { type TUnion } from '../union/index'; import { TMappedKey, TMappedResult } from '../mapped/index'; import { UnionToTuple } from '../helpers/index'; import { type TExtendsFromMappedKey } from './extends-from-mapped-key'; import { type TExtendsFromMappedResult } from './extends-from-mapped-result'; type TExtendsResolve = ((Static extends Static ? T : U) extends infer O extends TSchema ? UnionToTuple extends [infer X extends TSchema, infer Y extends TSchema] ? TUnion<[X, Y]> : O : never); export type TExtends = TExtendsResolve; /** `[Json]` Creates a Conditional type */ export declare function Extends(L: L, R: R, T: T, F: F, options?: SchemaOptions): TExtendsFromMappedResult; /** `[Json]` Creates a Conditional type */ export declare function Extends(L: L, R: R, T: T, F: F, options?: SchemaOptions): TExtendsFromMappedKey; /** `[Json]` Creates a Conditional type */ export declare function Extends(L: L, R: R, T: T, F: F, options?: SchemaOptions): TExtends; export {};