import { Match } from '../Any/_Internal'; import { Is } from '../Any/Is'; import { At } from '../Any/At'; import { Keys } from '../Any/Keys'; /** * @hidden */ export declare type _IntersectMatch = { [K in keyof O]-?: { 1: K; 0: never; }[Is, match>]; }[keyof O]; /** * @hidden */ declare type IntersectMatch = O extends unknown ? _IntersectMatch : never; /** * Get the intersecting keys of `O` & `O1` * (If `match = 'default'`, no type checks are done) * @param O to check similarities with * @param O1 to check similarities against * @returns [[Key]] * @example * ```ts * ``` */ export declare type IntersectKeys = { 'default': Keys & Keys; 'contains->': IntersectMatch'>; 'extends->': IntersectMatch'>; '<-contains': IntersectMatch; '<-extends': IntersectMatch; 'equals': IntersectMatch; }[match]; export {};