/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { AbstractPropertyExpression, type ValueSpecification } from '@finos/legend-graph';
import type { QueryBuilderState } from './QueryBuilderState.js';
export declare const buildPropertyExpressionChain: (propertyExpression: AbstractPropertyExpression, queryBuilderState: QueryBuilderState, lambdaParameterName: string, options?: LambdaFunctionBuilderOption, 
/**
 * As of now, we don't support date propagation for aggregation-class functions
 * so we have this temporary flag to disable date propagation, there could be other
 * functions that we need to handle, then we will revise this approach
 * See https://github.com/finos/legend-studio/issues/1471
 */
TEMPORARY__disableDatePropagation?: boolean) => ValueSpecification;
export type LambdaFunctionBuilderOption = {
    /**
     * Set queryBuilderState to `true` when we construct query for execution within the app.
     * queryBuilderState will make the lambda function building process overrides several query values, such as the row limit.
     */
    isBuildingExecutionQuery?: boolean | undefined;
    /**
     * Set this to `true` when we construct query for execution within the app to view preview data.
     * queryBuilderState will make the lambda function building process overrides `.all()` to `.allVersions()` if the Class
     * is milestoned and `property` to `propertyAllVersions` if a property is milestoned.
     */
    useAllVersionsForMilestoning?: boolean | undefined;
    keepSourceInformation?: boolean | undefined;
    /**
     * Set this to `true` when we export query results since we do want to ignore an overriding
     * limit for the query results if it exists so the exported results contain all the data
     */
    isExportingResult?: boolean | undefined;
    /**
     * Set this flag to `true` when you want to write to typed TDS function using the `Relation`
     * typed in engine. This is still an experimental feature, hence we should only enable this flag when user wants to enable this directly.
     */
    useTypedRelationFunctions?: boolean | undefined;
    /**
     * Set this flag to `true` when you want to execute a query that exceeds the limit to check for additional data in the database.
     */
    withDataOverflowCheck?: boolean | undefined;
};
//# sourceMappingURL=QueryBuilderValueSpecificationBuilderHelper.d.ts.map