import { type StaticType, type StaticDirection } from './static.mjs'; import { type TSchema, type TIntersectOptions } from './schema.mjs'; import { type TProperties } from './properties.mjs'; export type StaticIntersect = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? StaticIntersect> : Result); /** Represents a logical Intersect type. */ export interface TIntersect extends TSchema { '~kind': 'Intersect'; allOf: Types; } /** Creates a Intersect type. */ export declare function Intersect(types: [...Types], options?: TIntersectOptions): TIntersect; /** Returns true if the given value is TIntersect. */ export declare function IsIntersect(value: unknown): value is TIntersect; /** Extracts options from a TIntersect. */ export declare function IntersectOptions(type: TIntersect): TIntersectOptions;