/**
 * A simple class to build an object incrementally. It is helpful when you
 * want to add properties to the object conditionally.
 *
 * Instead of writing
 * ```
 * const obj = {
 *   ...(user.id ? { id: user.id } : {}),
 *   ...(user.firstName && user.lastName ? { name: `${user.firstName} ${user.lastName}` } : {}),
 * }
 * ```
 *
 * You can write
 *
 * const obj = new ObjectBuilder()
 *   .add('id', user.id)
 *   .add(
 *     'fullName',
 *     user.firstName && user.lastName ? `${user.firstName} ${user.lastName}` : undefined
 *   )
 *   .value
 */
export declare class ObjectBuilder {
    private ignoreNull?;
    value: any;
    constructor(ignoreNull?: boolean | undefined);
    /**
     * Add value to the property.
     *
     * - Undefined values are ignored
     * - Null values are ignored, when `ignoreNull` is set to true
     */
    add(key: string, value: any): this;
    /**
     * Remove value from the object
     */
    remove(key: string): this;
    /**
     * Find if a value exists
     */
    has(key: string): boolean;
    /**
     * Get the existing value
     */
    get<T extends any>(key: string): T;
}
