import { type TInfer } from '../types/infer.mjs'; import { type TSchema } from '../types/schema.mjs'; import { type TOptional } from '../types/_optional.mjs'; import { type TProperties } from '../types/properties.mjs'; import { type TExtendsLeft } from './extends_left.mjs'; import * as Result from './result.mjs'; type TParameterCompare = ([ IsLeftOptional, IsRightOptional ] extends [false, true] ? Result.TExtendsFalse : TExtendsLeft extends Result.TExtendsTrueLike ? TExtendsParameters : Result.TExtendsFalse); type TParameterRight = (RightRest extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TParameterCompare : Left extends TOptional ? Result.TExtendsTrue : Result.TExtendsFalse); type TParameterLeft = (LeftRest extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TParameterRight : Result.TExtendsTrue); export type TExtendsParameters = TParameterLeft; export declare function ExtendsParameters(inferred: Inferred, left: Left, right: Right): TExtendsParameters; export {};