import { Enumerable } from "../Enumerable/Enumerable"; declare global { interface Array { include(...includes: Array<(item: T) => any>): T[]; project(...includes: Array<(item: T) => any>): T[]; } } declare module "../Enumerable/Enumerable" { interface Enumerable { include(...includes: Array<(item: T) => any>): Enumerable; project(...includes: Array<(item: T) => any>): Enumerable; } } declare module "../Queryable/Queryable" { interface Queryable { asSubquery(): Enumerable; } } declare global { namespace Reflect { function getRelationData(source: S, relationProperty: SKey, target: T): M; function setRelationData(source: S, relationProperty: SKey, target: T, value: M): void; } }