import type { TSchema } from '../schema/index'; import type { Evaluate } from '../helpers/index'; import { type TIntersectEvaluated } from '../intersect/index'; import { type TIndexFromPropertyKeys } from '../indexed/index'; import { type TKeyOfPropertyKeys } from '../keyof/index'; import { type TNever } from '../never/index'; import { type TObject, type TProperties, type ObjectOptions } from '../object/index'; import { TSetDistinct } from '../sets/index'; type TCompositeKeys = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TCompositeKeys]> : TSetDistinct); type TFilterNever = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? L extends TNever ? TFilterNever : TFilterNever : Acc); type TCompositeProperty = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TCompositeProperty]> : TFilterNever); type TCompositeProperties = (K extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TCompositeProperties>; }> : Acc); type TCompositeEvaluate, P extends TProperties = Evaluate>, R extends TSchema = TObject

> = R; export type TComposite = TCompositeEvaluate; export declare function Composite(T: [...T], options?: ObjectOptions): TComposite; export {};