/**
 * A wrapper class that allows optional values to be passed to transformers
 * without causing errors when the value is undefined.
 *
 * The Maybe wrapper is typically used with the `whenLoaded` method to handle
 * relationships that may or may not be loaded.
 *
 * ```ts
 * class UserTransformer extends BaseTransformer<User> {
 *   toObject() {
 *     return {
 *       id: this.resource.id,
 *       profile: this.whenLoaded(this.resource.profile) // Returns Maybe<Profile>
 *     }
 *   }
 * }
 * ```
 */
export declare class Maybe<T> {
    /**
     * The wrapped value, which may be undefined
     */
    value: T;
    /**
     * Creates a new Maybe wrapper for a value
     *
     * @param value - The value to wrap, which may be undefined
     *
     * ```ts
     * const maybeUser = new Maybe(userData)
     * const maybeUndefined = new Maybe(undefined)
     * ```
     */
    constructor(
    /**
     * The wrapped value, which may be undefined
     */
    value: T);
}
