import { type Refreshable } from '../../data/configuration/spi/refreshable.js';
import { type ObjectStorageBackend } from '../../data/backend/api/object-storage-backend.js';
import { type Persistable } from '../../data/configuration/spi/persistable.js';
export declare class ReflectAssist {
    private constructor();
    /**
     * TypeScript custom type guard that checks if the provided object implements Refreshable.
     *
     * @param v - The object to check.
     * @returns true if the object implements Refreshable, false otherwise.
     * @private
     */
    static isRefreshable(v: object): v is Refreshable;
    /**
     * TypeScript custom type guard that checks if the provided object implements Persistable.
     *
     * @param v - The object to check.
     * @returns true if the object implements Persistable, false otherwise.
     * @private
     */
    static isPersistable(v: object): v is Persistable;
    /**
     * TypeScript custom type guard that checks if the provided object implements ObjectStorageBackend.
     *
     * @param v - The object to check.
     * @returns true if the object implements ObjectStorageBackend, false otherwise.
     * @private
     */
    static isObjectStorageBackend(v: object): v is ObjectStorageBackend;
    static coerce(v: string): string | number | boolean | object | null;
    /**
     * Creates a clone of the firstObject of type T and merges the properties of the secondObject into it.  If either
     * object is falsy, then the other object is returned.
     * @returns The merged object of type T.
     * @param firstObject
     * @param secondObject
     */
    static merge<T>(firstObject: T, secondObject: T): T;
}
