import { type TSchema } from '../../types/schema.mjs'; import { type TUnion } from '../../types/union.mjs'; import { type TExtends, ExtendsResult } from '../../extends/index.mjs'; import { type TEvaluateType } from '../evaluate/evaluate.mjs'; import { type TEvaluateUnion } from '../evaluate/evaluate.mjs'; type TExtractType, Result extends TSchema[] = Check extends ExtendsResult.TExtendsTrueLike ? [Left] : []> = Result; type TExtractUnion = (Left extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TExtractUnion]> : Result); export type TExtractOperation, Canonical extends TSchema[] = Evaluated extends TUnion ? Types : [Evaluated], Remaining extends TSchema[] = TExtractUnion, Result extends TSchema = TEvaluateUnion> = Result; export declare function ExtractOperation(left: Left, right: Right): TExtractOperation; export {};