import { Iterator } from "../../lazy";
import { AnyObject, Options } from "../../types";
interface InputExpr {
    /** Specifies the collection in the same database to perform the join with. */
    from: string | AnyObject[];
    /** Specifies the field from the documents input to the $lookup stage. */
    localField?: string;
    /** Specifies the field from the documents in the from collection. */
    foreignField?: string;
    /** Specifies the pipeline to run on the joined collection. The pipeline determines the resulting documents from the joined collection. */
    pipeline?: Record<string, AnyObject>[];
    /** Specifies the name of the new array field to add to the input documents. */
    as: string;
    /** Optional. Specifies variables to use in the pipeline stages. */
    let?: AnyObject;
}
/**
 * Performs a left outer join to another collection to filter in documents from the "joined" collection for processing.
 *
 * See {@link https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/ usage}
 */
export declare function $lookup(coll: Iterator, expr: InputExpr, options: Options): Iterator;
export {};
