import { hasAlias, isFieldSubquery, isGroupByField, isGroupByFn, isHavingClauseWithRightCondition, isNegationCondition, isOrderByField, isOrderByFn, isString, isSubquery, isValueCondition, isValueFunctionCondition, isValueQueryCondition, isValueWithDateLiteralCondition, isValueWithDateNLiteralCondition, isWhereClauseWithRightCondition, isWhereOrHavingClauseWithRightCondition } from '../utils'; import { isFormulaFunction } from '../formula'; import * as SoqlModels from './api-models'; export { hasAlias, isFieldSubquery, isFormulaFunction, isGroupByField, isGroupByFn, isHavingClauseWithRightCondition, isNegationCondition, isOrderByField, isOrderByFn, isString, isSubquery, isValueCondition, isValueFunctionCondition, isValueQueryCondition, isValueWithDateLiteralCondition, isValueWithDateNLiteralCondition, isWhereClauseWithRightCondition, isWhereOrHavingClauseWithRightCondition, }; export type ComposeFieldInput = ComposeField | ComposeFieldFunction | ComposeFieldRelationship | ComposeFieldSubquery | ComposeFieldTypeof; export interface ComposeField { field: string; objectPrefix?: string; } export interface ComposeFieldFunction { fn?: string; functionName: string; parameters?: string | SoqlModels.FieldFunctionExpression | (string | SoqlModels.FieldFunctionExpression)[]; alias?: string; } export interface ComposeFieldRelationship { field: string; relationships: string[]; objectPrefix?: string; } export interface ComposeFieldSubquery { subquery?: SoqlModels.Subquery; } export interface ComposeFieldTypeof { field: string; conditions: SoqlModels.FieldTypeOfCondition[]; } /** * @deprecated - use `getField()` instead * Pass any a basic string or populate required properties on the ComposeField object * and a constructed field will be returned * @param input string | ComposeFieldInput * @returns FieldType */ export declare function getComposedField(input: string | ComposeFieldInput): SoqlModels.FieldType; /** * Pass any a basic string or populate required properties on the ComposeField object * and a constructed field will be returned * @param input string | ComposeFieldInput * @returns FieldType */ export declare function getField(input: string | ComposeFieldInput): SoqlModels.FieldType; /** * Gets flattened fields - this will turn a Query into a list of fields that can be used to parse results from a returned dataset from SFDC * Subqueries only include the child SObject relationship name * @param query * @param [isAggregateResult] pass in true to force expr0...1 for all non-aliased functions even if field is not explicitly an aggregate expression * @returns flattened fields */ export declare function getFlattenedFields(query: SoqlModels.Query | SoqlModels.Subquery | SoqlModels.FieldSubquery, isAggregateResult?: boolean): string[];