import { Result } from "../result"; import { RuntimeType } from "../issues/shared"; import { OpaqueType } from "../type"; export type InstanceOfIssue = { readonly kind: "instance-of"; readonly expectedClass: string | undefined; readonly subject: RuntimeType; }; export type Constructor = Function & { prototype: T; }; export declare class InstanceOf extends OpaqueType { readonly klass: Constructor; constructor(klass: Constructor); check(val: any): Result; } export declare function instanceOf(klass: Constructor): InstanceOf;