/** @packageDocumentation
 * @module Utils
 */
/** Check if class `subclass` is a different class from `superclass` but extends from `superclass`
 * @param subclass the class that may be a subclass of `superclass`
 * @param superclass the class that may be a base class of `subclass`
 * @note The constructors of all types must be `public`.
 * @returns whether `subclass` is a proper subclass of `superclass`
 * @public
 */
export declare function isProperSubclassOf<SuperClass extends new (..._: any[]) => any, NonSubClass extends new (..._: any[]) => any, SubClass extends new (..._: any[]) => InstanceType<SuperClass>>(subclass: SubClass | NonSubClass, superclass: SuperClass): subclass is SubClass;
/** Check if class `subclass` is `superclass` or extends from `superclass`
 * @param subclass the class that may be a subclass of `superclass`.
 * @param superclass the class that may be a base class of `subclass`.
 * @note The constructors of all types must be `public`.
 * @returns whether `subclass` is a subclass of `superclass`
 * @public
 */
export declare function isSubclassOf<SuperClass extends new (..._: any[]) => any, NonSubClass extends new (..._: any[]) => any, SubClass extends new (..._: any[]) => InstanceType<SuperClass>>(subclass: SuperClass | SubClass | NonSubClass, superclass: SuperClass): subclass is SubClass | SuperClass;
//# sourceMappingURL=ClassUtils.d.ts.map