import { createSatisfier } from './createSatisfier.js' import { Predicate } from './interfaces.js' export type TargetedExpectation = ( T extends Array ? Array> : T extends object ? { [k in keyof T]?: TargetedExpectation } : T ) | Predicate export function satisfies(actual: T, expected: TargetedExpectation): boolean { return createSatisfier(expected as any).test(actual) }