Skip to content

Latest commit

 

History

History
1730 lines (1330 loc) · 63.5 KB

File metadata and controls

1730 lines (1330 loc) · 63.5 KB

API Report File for "@firebase/firestore-lite-pipelines"

Do not edit this file. It is a report generated by API Extractor.

import { FirebaseApp } from '@firebase/app';

// @public
export function abs(expr: Expression): FunctionExpression;

// @public
export function abs(fieldName: string): FunctionExpression;

// @public
export function add(first: Expression, second: Expression | unknown): FunctionExpression;

// @public
export function add(fieldName: string, second: Expression | unknown): FunctionExpression;

// @public
export type AddFieldsStageOptions = StageOptions & {
    fields: Selectable[];
};

// @public
export class AggregateFunction {
    constructor(name: string, params: Expression[]);
    as(name: string): AliasedAggregate;
    // (undocumented)
    exprType: ExpressionType;
    }

// @public
export type AggregateStageOptions = StageOptions & {
    accumulators: AliasedAggregate[];
    groups?: Array<string | Selectable>;
};

// @public
export class AliasedAggregate {
    constructor(aggregate: AggregateFunction, alias: string, _methodName: string | undefined);
    // (undocumented)
    readonly aggregate: AggregateFunction;
    // (undocumented)
    readonly alias: string;
}

// @public (undocumented)
export class AliasedExpression implements Selectable {
    constructor(expr: Expression, alias: string, _methodName: string | undefined);
    // (undocumented)
    readonly alias: string;
    // (undocumented)
    readonly expr: Expression;
    // (undocumented)
    exprType: ExpressionType;
    // (undocumented)
    selectable: true;
}

// @public
export function and(first: BooleanExpression, second: BooleanExpression, ...more: BooleanExpression[]): BooleanExpression;

// @public
export function array(elements: unknown[]): FunctionExpression;

// @public
export function arrayAgg(expression: Expression): AggregateFunction;

// @public
export function arrayAgg(fieldName: string): AggregateFunction;

// @public
export function arrayAggDistinct(expression: Expression): AggregateFunction;

// @public
export function arrayAggDistinct(fieldName: string): AggregateFunction;

// @public
export function arrayConcat(firstArray: Expression, secondArray: Expression | unknown[], ...otherArrays: Array<Expression | unknown[]>): FunctionExpression;

// @public
export function arrayConcat(firstArrayField: string, secondArray: Expression | unknown[], ...otherArrays: Array<Expression | unknown[]>): FunctionExpression;

// @public
export function arrayContains(array: Expression, element: Expression): BooleanExpression;

// @public
export function arrayContains(array: Expression, element: unknown): BooleanExpression;

// @public
export function arrayContains(fieldName: string, element: Expression): BooleanExpression;

// @public
export function arrayContains(fieldName: string, element: unknown): BooleanExpression;

// @public
export function arrayContainsAll(array: Expression, values: Array<Expression | unknown>): BooleanExpression;

// @public
export function arrayContainsAll(fieldName: string, values: Array<Expression | unknown>): BooleanExpression;

// @public
export function arrayContainsAll(array: Expression, arrayExpression: Expression): BooleanExpression;

// @public
export function arrayContainsAll(fieldName: string, arrayExpression: Expression): BooleanExpression;

// @public
export function arrayContainsAny(array: Expression, values: Array<Expression | unknown>): BooleanExpression;

// @public
export function arrayContainsAny(fieldName: string, values: Array<Expression | unknown>): BooleanExpression;

// @public
export function arrayContainsAny(array: Expression, values: Expression): BooleanExpression;

// @public
export function arrayContainsAny(fieldName: string, values: Expression): BooleanExpression;

// @public
export function arrayFirst(fieldName: string): FunctionExpression;

// @public
export function arrayFirst(arrayExpression: Expression): FunctionExpression;

// @public
export function arrayFirstN(fieldName: string, n: number): FunctionExpression;

// @public
export function arrayFirstN(fieldName: string, n: Expression): FunctionExpression;

// @public
export function arrayFirstN(arrayExpression: Expression, n: number): FunctionExpression;

// @public
export function arrayFirstN(arrayExpression: Expression, n: Expression): FunctionExpression;

// @public
export function arrayGet(arrayField: string, offset: number): FunctionExpression;

// @public
export function arrayGet(arrayField: string, offsetExpr: Expression): FunctionExpression;

// @public
export function arrayGet(arrayExpression: Expression, offset: number): FunctionExpression;

// @public
export function arrayGet(arrayExpression: Expression, offsetExpr: Expression): FunctionExpression;

// @public
export function arrayIndexOf(fieldName: string, search: unknown | Expression): FunctionExpression;

// @public
export function arrayIndexOf(arrayExpression: Expression, search: unknown | Expression): FunctionExpression;

// @public
export function arrayIndexOfAll(fieldName: string, search: unknown | Expression): FunctionExpression;

// @public
export function arrayIndexOfAll(arrayExpression: Expression, search: unknown | Expression): FunctionExpression;

// @public
export function arrayLast(fieldName: string): FunctionExpression;

// @public
export function arrayLast(arrayExpression: Expression): FunctionExpression;

// @public
export function arrayLastIndexOf(fieldName: string, search: unknown | Expression): FunctionExpression;

// @public
export function arrayLastIndexOf(arrayExpression: Expression, search: unknown | Expression): FunctionExpression;

// @public
export function arrayLastN(fieldName: string, n: number): FunctionExpression;

// @public
export function arrayLastN(fieldName: string, n: Expression): FunctionExpression;

// @public
export function arrayLastN(arrayExpression: Expression, n: number): FunctionExpression;

// @public
export function arrayLastN(arrayExpression: Expression, n: Expression): FunctionExpression;

// @public
export function arrayLength(fieldName: string): FunctionExpression;

// @public
export function arrayLength(array: Expression): FunctionExpression;

// @public
export function arrayMaximum(fieldName: string): FunctionExpression;

// @public
export function arrayMaximum(arrayExpression: Expression): FunctionExpression;

// @public
export function arrayMaximumN(fieldName: string, n: number): FunctionExpression;

// @public
export function arrayMaximumN(fieldName: string, n: Expression): FunctionExpression;

// @public
export function arrayMaximumN(arrayExpression: Expression, n: number): FunctionExpression;

// @public
export function arrayMaximumN(arrayExpression: Expression, n: Expression): FunctionExpression;

// @public
export function arrayMinimum(fieldName: string): FunctionExpression;

// @public
export function arrayMinimum(arrayExpression: Expression): FunctionExpression;

// @public
export function arrayMinimumN(fieldName: string, n: number): FunctionExpression;

// @public
export function arrayMinimumN(fieldName: string, n: Expression): FunctionExpression;

// @public
export function arrayMinimumN(arrayExpression: Expression, n: number): FunctionExpression;

// @public
export function arrayMinimumN(arrayExpression: Expression, n: Expression): FunctionExpression;

// @public
export function arraySum(fieldName: string): FunctionExpression;

// @public
export function arraySum(expression: Expression): FunctionExpression;

// @public
export function ascending(expr: Expression): Ordering;

// @public
export function ascending(fieldName: string): Ordering;

// @public
export function average(expression: Expression): AggregateFunction;

// @public
export function average(fieldName: string): AggregateFunction;

// @public
export abstract class BooleanExpression extends Expression {
    conditional(thenExpr: Expression, elseExpr: Expression): FunctionExpression;
    countIf(): AggregateFunction;
    ifError(catchValue: BooleanExpression): BooleanExpression;
    ifError(catchValue: boolean): BooleanExpression;
    ifError(catchValue: Expression): FunctionExpression;
    ifError(catchValue: unknown): FunctionExpression;
    not(): BooleanExpression;
}

// @public
export function byteLength(expr: Expression): FunctionExpression;

// @public
export function byteLength(fieldName: string): FunctionExpression;

// @public
export function ceil(fieldName: string): FunctionExpression;

// @public
export function ceil(expression: Expression): FunctionExpression;

// @public
export function charLength(fieldName: string): FunctionExpression;

// @public
export function charLength(stringExpression: Expression): FunctionExpression;

// @public
export function coalesce(expression: Expression, replacement: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;

// @public
export function coalesce(fieldName: string, replacement: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;

// @public
export type CollectionGroupStageOptions = StageOptions & {
    collectionId: string;
    forceIndex?: string;
};

// @public
export function collectionId(fieldName: string): FunctionExpression;

// @public
export function collectionId(expression: Expression): FunctionExpression;

// @public
export type CollectionStageOptions = StageOptions & {
    collection: string | Query;
    forceIndex?: string;
};

// @public
export function concat(first: Expression, second: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;

// @public
export function concat(fieldName: string, second: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;

// @public
export function conditional(condition: BooleanExpression, thenExpr: Expression, elseExpr: Expression): FunctionExpression;

// @public
export function constant(value: number): Expression;

// @public
export function constant(value: string): Expression;

// @public
export function constant(value: boolean): BooleanExpression;

// @public
export function constant(value: null): Expression;

// @public
export function constant(value: GeoPoint): Expression;

// @public
export function constant(value: Timestamp): Expression;

// @public
export function constant(value: Date): Expression;

// @public
export function constant(value: Bytes): Expression;

// @public
export function constant(value: DocumentReference): Expression;

// @public
export function constant(value: VectorValue): Expression;

// @public
export function cosineDistance(fieldName: string, vector: number[] | VectorValue): FunctionExpression;

// @public
export function cosineDistance(fieldName: string, vectorExpression: Expression): FunctionExpression;

// @public
export function cosineDistance(vectorExpression: Expression, vector: number[] | VectorValue): FunctionExpression;

// @public
export function cosineDistance(vectorExpression: Expression, otherVectorExpression: Expression): FunctionExpression;

// @public
export function count(expression: Expression): AggregateFunction;

// @public
export function count(fieldName: string): AggregateFunction;

// @public
export function countAll(): AggregateFunction;

// @public
export function countDistinct(expr: Expression | string): AggregateFunction;

// @public
export function countIf(booleanExpr: BooleanExpression): AggregateFunction;

// @public
export function currentDocument(): Expression;

// @public
export function currentTimestamp(): FunctionExpression;

// @public
export type DatabaseStageOptions = StageOptions & {};

// @public
export type DefineStageOptions = StageOptions & {
    variables: AliasedExpression[];
};

// @public
export function descending(expr: Expression): Ordering;

// @public
export function descending(fieldName: string): Ordering;

// @public
export type DistinctStageOptions = StageOptions & {
    groups: Array<string | Selectable>;
};

// @public
export function divide(left: Expression, right: Expression): FunctionExpression;

// @public
export function divide(expression: Expression, value: unknown): FunctionExpression;

// @public
export function divide(fieldName: string, expressions: Expression): FunctionExpression;

// @public
export function divide(fieldName: string, value: unknown): FunctionExpression;

// @public
export function documentId(documentPath: string | DocumentReference): FunctionExpression;

// @public
export function documentId(documentPathExpr: Expression): FunctionExpression;

// @beta
export function documentMatches(rquery: string | Expression): BooleanExpression;

// @public
export type DocumentsStageOptions = StageOptions & {
    docs: Array<string | DocumentReference>;
};

// @public
export function dotProduct(fieldName: string, vector: number[] | VectorValue): FunctionExpression;

// @public
export function dotProduct(fieldName: string, vectorExpression: Expression): FunctionExpression;

// @public
export function dotProduct(vectorExpression: Expression, vector: number[] | VectorValue): FunctionExpression;

// @public
export function dotProduct(vectorExpression: Expression, otherVectorExpression: Expression): FunctionExpression;

// @public
export function endsWith(fieldName: string, suffix: string): BooleanExpression;

// @public
export function endsWith(fieldName: string, suffix: Expression): BooleanExpression;

// @public
export function endsWith(stringExpression: Expression, suffix: string): BooleanExpression;

// @public
export function endsWith(stringExpression: Expression, suffix: Expression): BooleanExpression;

// @public
export function equal(left: Expression, right: Expression): BooleanExpression;

// @public
export function equal(expression: Expression, value: unknown): BooleanExpression;

// @public
export function equal(fieldName: string, expression: Expression): BooleanExpression;

// @public
export function equal(fieldName: string, value: unknown): BooleanExpression;

// @public
export function equalAny(expression: Expression, values: Array<Expression | unknown>): BooleanExpression;

// @public
export function equalAny(expression: Expression, arrayExpression: Expression): BooleanExpression;

// @public
export function equalAny(fieldName: string, values: Array<Expression | unknown>): BooleanExpression;

// @public
export function equalAny(fieldName: string, arrayExpression: Expression): BooleanExpression;

// @public
export function euclideanDistance(fieldName: string, vector: number[] | VectorValue): FunctionExpression;

// @public
export function euclideanDistance(fieldName: string, vectorExpression: Expression): FunctionExpression;

// @public
export function euclideanDistance(vectorExpression: Expression, vector: number[] | VectorValue): FunctionExpression;

// @public
export function euclideanDistance(vectorExpression: Expression, otherVectorExpression: Expression): FunctionExpression;

// @public
export function execute(pipeline: Pipeline): Promise<PipelineSnapshot>;

// @public
export function exists(value: Expression): BooleanExpression;

// @public
export function exists(fieldName: string): BooleanExpression;

// @public
export function exp(expression: Expression): FunctionExpression;

// @public
export function exp(fieldName: string): FunctionExpression;

// @public
export abstract class Expression {
    abs(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    add(second: Expression | unknown): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayAgg(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    arrayAggDistinct(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    arrayConcat(secondArray: Expression | unknown[], ...otherArrays: Array<Expression | unknown[]>): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayContains(expression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    arrayContains(value: unknown): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    arrayContainsAll(values: Array<Expression | unknown>): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    arrayContainsAll(arrayExpression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    arrayContainsAny(values: Array<Expression | unknown>): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    arrayContainsAny(arrayExpression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    arrayFirst(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayFirstN(n: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayFirstN(n: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayGet(offset: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayGet(offsetExpr: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayIndexOf(search: unknown): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayIndexOf(search: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayIndexOfAll(search: unknown): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayIndexOfAll(search: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayLast(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayLastIndexOf(search: unknown): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayLastIndexOf(search: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayLastN(n: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayLastN(n: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayLength(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayMaximum(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayMaximumN(n: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayMaximumN(n: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayMinimum(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayMinimumN(n: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayMinimumN(n: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arrayReverse(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    arraySum(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    as(name: string): AliasedExpression;
    /* Excluded from this release type: _readUserData */
    asBoolean(): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    ascending(): Ordering;
    /* Excluded from this release type: _readUserData */
    average(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    byteLength(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    ceil(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    charLength(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    coalesce(replacement: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    collectionId(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    concat(second: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    cosineDistance(vectorExpression: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    cosineDistance(vector: VectorValue | number[]): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    count(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    countDistinct(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    descending(): Ordering;
    /* Excluded from this release type: _readUserData */
    divide(divisor: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    divide(divisor: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    documentId(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    dotProduct(vectorExpression: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    dotProduct(vector: VectorValue | number[]): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    endsWith(suffix: string): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    endsWith(suffix: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    equal(expression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    equal(value: unknown): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    equalAny(values: Array<Expression | unknown>): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    equalAny(arrayExpression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    euclideanDistance(vectorExpression: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    euclideanDistance(vector: VectorValue | number[]): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    exists(): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    exp(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    // (undocumented)
    abstract readonly expressionType: ExpressionType;
    /* Excluded from this release type: _readUserData */
    first(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    floor(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    getField(key: string | Expression): Expression;
    /* Excluded from this release type: _readUserData */
    greaterThan(expression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    greaterThan(value: unknown): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    greaterThanOrEqual(expression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    greaterThanOrEqual(value: unknown): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    ifAbsent(elseValue: unknown): Expression;
    /* Excluded from this release type: _readUserData */
    ifAbsent(elseExpression: unknown): Expression;
    /* Excluded from this release type: _readUserData */
    ifError(catchExpr: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    ifError(catchValue: unknown): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    ifNull(elseExpression: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    ifNull(elseValue: unknown): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    isAbsent(): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    isError(): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    isType(type: Type): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    join(delimiterExpression: Expression): Expression;
    /* Excluded from this release type: _readUserData */
    join(delimiter: string): Expression;
    /* Excluded from this release type: _readUserData */
    last(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    length(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    lessThan(experession: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    lessThan(value: unknown): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    lessThanOrEqual(expression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    lessThanOrEqual(value: unknown): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    like(pattern: string): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    like(pattern: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    ln(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    log10(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    logicalMaximum(second: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    logicalMinimum(second: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    ltrim(valueToTrim?: string | Expression | Bytes): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    mapEntries(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    mapGet(subfield: string): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    mapKeys(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    mapMerge(secondMap: Record<string, unknown> | Expression, ...otherMaps: Array<Record<string, unknown> | Expression>): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    mapRemove(key: string): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    mapRemove(keyExpr: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    mapSet(key: string | Expression, value: unknown, ...moreKeyValues: unknown[]): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    mapValues(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    maximum(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    minimum(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    mod(expression: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    mod(value: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    multiply(second: Expression | number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    notEqual(expression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    notEqual(value: unknown): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    notEqualAny(values: Array<Expression | unknown>): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    notEqualAny(arrayExpression: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    pow(exponent: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    pow(exponent: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    regexContains(pattern: string): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    regexContains(pattern: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    regexFind(pattern: string): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    regexFind(pattern: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    regexFindAll(pattern: string): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    regexFindAll(pattern: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    regexMatch(pattern: string): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    regexMatch(pattern: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    reverse(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    round(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    round(decimalPlaces: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    round(decimalPlaces: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    rtrim(valueToTrim?: string | Expression | Bytes): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    split(delimiter: string): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    split(delimiter: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    sqrt(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    startsWith(prefix: string): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    startsWith(prefix: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    stringConcat(secondString: Expression | string, ...otherStrings: Array<Expression | string>): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    stringContains(substring: string): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    stringContains(expr: Expression): BooleanExpression;
    /* Excluded from this release type: _readUserData */
    stringIndexOf(search: string | Expression | Bytes): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    stringRepeat(repetitions: number | Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    stringReplaceAll(find: string | Expression | Bytes, replacement: string | Expression | Bytes): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    stringReplaceOne(find: string | Expression | Bytes, replacement: string | Expression | Bytes): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    stringReverse(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    substring(position: number, length?: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    substring(position: Expression, length?: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    subtract(subtrahend: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    subtract(subtrahend: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    sum(): AggregateFunction;
    /* Excluded from this release type: _readUserData */
    timestampAdd(unit: Expression, amount: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampAdd(unit: TimeUnit, amount: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampDiff(start: Expression, unit: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampDiff(start: string | Expression, unit: TimeUnit): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampExtract(part: TimePart, timezone?: string | Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampExtract(part: Expression, timezone?: string | Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampSubtract(unit: Expression, amount: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampSubtract(unit: TimeUnit, amount: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampToUnixMicros(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampToUnixMillis(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampToUnixSeconds(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampTruncate(granularity: TimeGranularity, timezone?: string | Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    timestampTruncate(granularity: Expression, timezone?: string | Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    toLower(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    toUpper(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    trim(valueToTrim?: string | Expression | Bytes): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    trunc(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    trunc(decimalPlaces: number): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    trunc(decimalPlaces: Expression): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    type(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    unixMicrosToTimestamp(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    unixMillisToTimestamp(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    unixSecondsToTimestamp(): FunctionExpression;
    /* Excluded from this release type: _readUserData */
    vectorLength(): FunctionExpression;
}

// @public
export type ExpressionType = 'Field' | 'Constant' | 'Function' | 'AggregateFunction' | 'ListOfExpressions' | 'AliasedExpression' | 'Variable' | 'PipelineValue';

// @public
export class Field extends Expression implements Selectable {
    // (undocumented)
    get alias(): string;
    // (undocumented)
    get expr(): Expression;
    // (undocumented)
    readonly expressionType: ExpressionType;
    // (undocumented)
    get fieldName(): string;
    // @beta
    geoDistance(location: GeoPoint | Expression): Expression;
    // (undocumented)
    selectable: true;
}

// @public
export function field(name: string): Field;

// @public
export function field(path: FieldPath): Field;

// @public
export type FindNearestStageOptions = StageOptions & {
    field: Field | string;
    vectorValue: VectorValue | number[];
    distanceMeasure: 'euclidean' | 'cosine' | 'dot_product';
    limit?: number;
    distanceField?: string;
};

// @public
export function first(expression: Expression): AggregateFunction;

// @public
export function first(fieldName: string): AggregateFunction;

// @public
export function floor(expr: Expression): FunctionExpression;

// @public
export function floor(fieldName: string): FunctionExpression;

// @public
export class FunctionExpression extends Expression {
    constructor(name: string, params: Expression[]);
    // (undocumented)
    readonly expressionType: ExpressionType;
    }

// @beta
export function geoDistance(fieldName: string | Field, location: GeoPoint | Expression): Expression;

// @public
export function greaterThan(left: Expression, right: Expression): BooleanExpression;

// @public
export function greaterThan(expression: Expression, value: unknown): BooleanExpression;

// @public
export function greaterThan(fieldName: string, expression: Expression): BooleanExpression;

// @public
export function greaterThan(fieldName: string, value: unknown): BooleanExpression;

// @public
export function greaterThanOrEqual(left: Expression, right: Expression): BooleanExpression;

// @public
export function greaterThanOrEqual(expression: Expression, value: unknown): BooleanExpression;

// @public
export function greaterThanOrEqual(fieldName: string, value: Expression): BooleanExpression;

// @public
export function greaterThanOrEqual(fieldName: string, value: unknown): BooleanExpression;

// @public
export function ifAbsent(ifExpr: Expression, elseExpr: Expression): Expression;

// @public
export function ifAbsent(ifExpr: Expression, elseValue: unknown): Expression;

// @public
export function ifAbsent(ifFieldName: string, elseExpr: Expression): Expression;

// @public
export function ifAbsent(ifFieldName: string | Expression, elseValue: Expression | unknown): Expression;

// @public
export function ifError(tryExpr: BooleanExpression, catchExpr: BooleanExpression): BooleanExpression;

// @public
export function ifError(tryExpr: Expression, catchExpr: Expression): FunctionExpression;

// @public
export function ifError(tryExpr: Expression, catchValue: unknown): FunctionExpression;

// @public
export function ifNull(ifExpr: Expression, elseExpr: Expression): FunctionExpression;

// @public
export function ifNull(ifExpr: Expression, elseValue: unknown): FunctionExpression;

// @public
export function ifNull(ifFieldName: string, elseExpr: Expression): FunctionExpression;

// @public
export function ifNull(ifFieldName: string, elseValue: unknown): FunctionExpression;

// @public
export function isAbsent(value: Expression): BooleanExpression;

// @public
export function isAbsent(field: string): BooleanExpression;

// @public
export function isError(value: Expression): BooleanExpression;

// @public
export function isType(fieldName: string, type: Type): BooleanExpression;

// @public
export function isType(expression: Expression, type: Type): BooleanExpression;

// @public
export function join(arrayFieldName: string, delimiter: string): Expression;

// @public
export function join(arrayExpression: Expression, delimiterExpression: Expression): Expression;

// @public
export function join(arrayExpression: Expression, delimiter: string): Expression;

// @public
export function join(arrayFieldName: string, delimiterExpression: Expression): Expression;

// @public
export function last(expression: Expression): AggregateFunction;

// @public
export function last(fieldName: string): AggregateFunction;

// @public
function length_2(fieldName: string): FunctionExpression;

// @public
function length_2(expression: Expression): FunctionExpression;

export { length_2 as length }

// @public
export function lessThan(left: Expression, right: Expression): BooleanExpression;

// @public
export function lessThan(expression: Expression, value: unknown): BooleanExpression;

// @public
export function lessThan(fieldName: string, expression: Expression): BooleanExpression;

// @public
export function lessThan(fieldName: string, value: unknown): BooleanExpression;

// @public
export function lessThanOrEqual(left: Expression, right: Expression): BooleanExpression;

// @public
export function lessThanOrEqual(expression: Expression, value: unknown): BooleanExpression;

// @public
export function lessThanOrEqual(fieldName: string, expression: Expression): BooleanExpression;

// @public
export function lessThanOrEqual(fieldName: string, value: unknown): BooleanExpression;

// @public
export function like(fieldName: string, pattern: string): BooleanExpression;

// @public
export function like(fieldName: string, pattern: Expression): BooleanExpression;

// @public
export function like(stringExpression: Expression, pattern: string): BooleanExpression;

// @public
export function like(stringExpression: Expression, pattern: Expression): BooleanExpression;

// @public
export type LimitStageOptions = StageOptions & {
    limit: number;
};

// @public
export function ln(fieldName: string): FunctionExpression;

// @public
export function ln(expression: Expression): FunctionExpression;

// @public
export function log(expression: Expression, base: number): FunctionExpression;

// @public
export function log(expression: Expression, base: Expression): FunctionExpression;

// @public
export function log(fieldName: string, base: number): FunctionExpression;

// @public
export function log(fieldName: string, base: Expression): FunctionExpression;

// @public
export function log10(fieldName: string): FunctionExpression;

// @public
export function log10(expression: Expression): FunctionExpression;

// @public
export function logicalMaximum(first: Expression, second: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;

// @public
export function logicalMaximum(fieldName: string, second: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;

// @public
export function logicalMinimum(first: Expression, second: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;

// @public
export function logicalMinimum(fieldName: string, second: Expression | unknown, ...others: Array<Expression | unknown>): FunctionExpression;

// @public
export function ltrim(fieldName: string, valueToTrim?: string | Expression | Bytes): FunctionExpression;

// @public
export function ltrim(expression: Expression, valueToTrim?: string | Expression | Bytes): FunctionExpression;

// @public
export function map(elements: Record<string, unknown>): FunctionExpression;

// @public
export function mapEntries(mapField: string): FunctionExpression;

// @public
export function mapEntries(mapExpression: Expression): FunctionExpression;

// @public
export function mapGet(fieldName: string, subField: string): FunctionExpression;

// @public
export function mapGet(mapExpression: Expression, subField: string): FunctionExpression;

// @public
export function mapKeys(mapField: string): FunctionExpression;

// @public
export function mapKeys(mapExpression: Expression): FunctionExpression;

// @public
export function mapMerge(mapField: string, secondMap: Record<string, unknown> | Expression, ...otherMaps: Array<Record<string, unknown> | Expression>): FunctionExpression;

// @public
export function mapMerge(firstMap: Record<string, unknown> | Expression, secondMap: Record<string, unknown> | Expression, ...otherMaps: Array<Record<string, unknown> | Expression>): FunctionExpression;

// @public
export function mapRemove(mapField: string, key: string): FunctionExpression;

// @public
export function mapRemove(mapExpr: Expression, key: string): FunctionExpression;

// @public
export function mapRemove(mapField: string, keyExpr: Expression): FunctionExpression;

// @public
export function mapRemove(mapExpr: Expression, keyExpr: Expression): FunctionExpression;

// @public
export function mapSet(mapField: string, key: string | Expression, value: unknown, ...moreKeyValues: unknown[]): FunctionExpression;

// @public
export function mapSet(mapExpression: Expression, key: string | Expression, value: unknown, ...moreKeyValues: unknown[]): FunctionExpression;

// @public
export function mapValues(mapField: string): FunctionExpression;

// @public
export function mapValues(mapExpression: Expression): FunctionExpression;

// @public
export function maximum(expression: Expression): AggregateFunction;

// @public
export function maximum(fieldName: string): AggregateFunction;

// @public
export function minimum(expression: Expression): AggregateFunction;

// @public
export function minimum(fieldName: string): AggregateFunction;

// @public
export function mod(left: Expression, right: Expression): FunctionExpression;

// @public
export function mod(expression: Expression, value: unknown): FunctionExpression;

// @public
export function mod(fieldName: string, expression: Expression): FunctionExpression;

// @public
export function mod(fieldName: string, value: unknown): FunctionExpression;

// @public
export function multiply(first: Expression, second: Expression | unknown): FunctionExpression;

// @public
export function multiply(fieldName: string, second: Expression | unknown): FunctionExpression;

// @public
export function nor(first: BooleanExpression, second: BooleanExpression, ...more: BooleanExpression[]): BooleanExpression;

// @public
export function not(booleanExpr: BooleanExpression): BooleanExpression;

// @public
export function notEqual(left: Expression, right: Expression): BooleanExpression;

// @public
export function notEqual(expression: Expression, value: unknown): BooleanExpression;

// @public
export function notEqual(fieldName: string, expression: Expression): BooleanExpression;

// @public
export function notEqual(fieldName: string, value: unknown): BooleanExpression;

// @public
export function notEqualAny(element: Expression, values: Array<Expression | unknown>): BooleanExpression;

// @public
export function notEqualAny(fieldName: string, values: Array<Expression | unknown>): BooleanExpression;

// @public
export function notEqualAny(element: Expression, arrayExpression: Expression): BooleanExpression;

// @public
export function notEqualAny(fieldName: string, arrayExpression: Expression): BooleanExpression;

// @public
export type OffsetStageOptions = StageOptions & {
    offset: number;
};

// @public
export type OneOf<T> = {
    [K in keyof T]: Pick<T, K> & {
        [P in Exclude<keyof T, K>]?: undefined;
    };
}[keyof T];

// @public
export function or(first: BooleanExpression, second: BooleanExpression, ...more: BooleanExpression[]): BooleanExpression;

// @public
export class Ordering {
    constructor(expr: Expression, direction: 'ascending' | 'descending', _methodName: string | undefined);
    // (undocumented)
    readonly direction: 'ascending' | 'descending';
    // (undocumented)
    readonly expr: Expression;
}

// @public
export class Pipeline {
    addFields(field: Selectable, ...additionalFields: Selectable[]): Pipeline;
    addFields(options: AddFieldsStageOptions): Pipeline;
    aggregate(accumulator: AliasedAggregate, ...additionalAccumulators: AliasedAggregate[]): Pipeline;
    aggregate(options: AggregateStageOptions): Pipeline;
    define(aliasedExpression: AliasedExpression, ...additionalExpressions: AliasedExpression[]): Pipeline;
    define(options: DefineStageOptions): Pipeline;
    // @beta
    delete(): Pipeline;
    distinct(group: string | Selectable, ...additionalGroups: Array<string | Selectable>): Pipeline;
    distinct(options: DistinctStageOptions): Pipeline;
    findNearest(options: FindNearestStageOptions): Pipeline;
    limit(limit: number): Pipeline;
    limit(options: LimitStageOptions): Pipeline;
    offset(offset: number): Pipeline;
    offset(options: OffsetStageOptions): Pipeline;
    rawStage(name: string, params: unknown[], options?: {
        [key: string]: Expression | unknown;
    }): Pipeline;
    removeFields(fieldValue: Field | string, ...additionalFields: Array<Field | string>): Pipeline;
    removeFields(options: RemoveFieldsStageOptions): Pipeline;
    replaceWith(fieldName: string): Pipeline;
    replaceWith(expr: Expression): Pipeline;
    replaceWith(options: ReplaceWithStageOptions): Pipeline;
    sample(documents: number): Pipeline;
    sample(options: SampleStageOptions): Pipeline;
    // @beta
    search(options: SearchStageOptions): Pipeline;
    select(selection: Selectable | string, ...additionalSelections: Array<Selectable | string>): Pipeline;
    select(options: SelectStageOptions): Pipeline;
    sort(ordering: Ordering, ...additionalOrderings: Ordering[]): Pipeline;
    sort(options: SortStageOptions): Pipeline;
    toArrayExpression(): Expression;
    toScalarExpression(): Expression;
    union(other: Pipeline): Pipeline;
    union(options: UnionStageOptions): Pipeline;
    unnest(selectable: Selectable, indexField?: string): Pipeline;
    unnest(options: UnnestStageOptions): Pipeline;
    // @beta
    update(...transformedFields: Selectable[]): Pipeline;
    where(condition: BooleanExpression): Pipeline;
    where(options: WhereStageOptions): Pipeline;
}

// @public
export class PipelineResult<AppModelType = DocumentData> {
    /* Excluded from this release type: _ref */
    /* Excluded from this release type: _fields */
    /* Excluded from this release type: __constructor */
    get createTime(): Timestamp | undefined;
    data(): AppModelType;
    get(fieldPath: string | FieldPath | Field): any;
    get id(): string | undefined;
    get ref(): DocumentReference | undefined;
    get updateTime(): Timestamp | undefined;
}

// @public
export class PipelineSnapshot {
    constructor(pipeline: Pipeline, results: PipelineResult[], executionTime?: Timestamp);
    get executionTime(): Timestamp;
    get results(): PipelineResult[];
}

// @public
export class PipelineSource<PipelineType> {
    collection(collection: string | Query): PipelineType;
    /* Excluded from this release type: _createPipeline */
    /* Excluded from this release type: __constructor */
    collection(options: CollectionStageOptions): PipelineType;
    /* Excluded from this release type: _createPipeline */
    /* Excluded from this release type: __constructor */
    collectionGroup(collectionId: string): PipelineType;
    /* Excluded from this release type: _createPipeline */
    /* Excluded from this release type: __constructor */
    collectionGroup(options: CollectionGroupStageOptions): PipelineType;
    /* Excluded from this release type: _createPipeline */
    /* Excluded from this release type: __constructor */
    createFrom(query: Query): Pipeline;
    /* Excluded from this release type: _createPipeline */
    /* Excluded from this release type: __constructor */
    database(): PipelineType;
    /* Excluded from this release type: _createPipeline */
    /* Excluded from this release type: __constructor */
    database(options: DatabaseStageOptions): PipelineType;
    /* Excluded from this release type: _createPipeline */
    /* Excluded from this release type: __constructor */
    documents(docs: Array<string | DocumentReference>): PipelineType;
    /* Excluded from this release type: _createPipeline */
    /* Excluded from this release type: __constructor */
    documents(options: DocumentsStageOptions): PipelineType;
}

// @public
export function pow(base: Expression, exponent: Expression): FunctionExpression;

// @public
export function pow(base: Expression, exponent: number): FunctionExpression;

// @public
export function pow(base: string, exponent: Expression): FunctionExpression;

// @public
export function pow(base: string, exponent: number): FunctionExpression;

// @public
export function rand(): FunctionExpression;

// @public
export function regexContains(fieldName: string, pattern: string): BooleanExpression;

// @public
export function regexContains(fieldName: string, pattern: Expression): BooleanExpression;

// @public
export function regexContains(stringExpression: Expression, pattern: string): BooleanExpression;

// @public
export function regexContains(stringExpression: Expression, pattern: Expression): BooleanExpression;

// @public
export function regexFind(fieldName: string, pattern: string): FunctionExpression;

// @public
export function regexFind(fieldName: string, pattern: Expression): FunctionExpression;

// @public
export function regexFind(stringExpression: Expression, pattern: string): FunctionExpression;

// @public
export function regexFind(stringExpression: Expression, pattern: Expression): FunctionExpression;

// @public
export function regexFindAll(fieldName: string, pattern: string): FunctionExpression;

// @public
export function regexFindAll(fieldName: string, pattern: Expression): FunctionExpression;

// @public
export function regexFindAll(stringExpression: Expression, pattern: string): FunctionExpression;

// @public
export function regexFindAll(stringExpression: Expression, pattern: Expression): FunctionExpression;

// @public
export function regexMatch(fieldName: string, pattern: string): BooleanExpression;

// @public
export function regexMatch(fieldName: string, pattern: Expression): BooleanExpression;

// @public
export function regexMatch(stringExpression: Expression, pattern: string): BooleanExpression;

// @public
export function regexMatch(stringExpression: Expression, pattern: Expression): BooleanExpression;

// @public
export type RemoveFieldsStageOptions = StageOptions & {
    fields: Array<Field | string>;
};

// @public
export type ReplaceWithStageOptions = StageOptions & {
    map: Expression | string;
};

// @public
export function reverse(stringExpression: Expression): FunctionExpression;

// @public
export function reverse(field: string): FunctionExpression;

// @public
export function round(fieldName: string): FunctionExpression;

// @public
export function round(expression: Expression): FunctionExpression;

// @public
export function round(fieldName: string, decimalPlaces: number | Expression): FunctionExpression;

// @public
export function round(expression: Expression, decimalPlaces: number | Expression): FunctionExpression;

// @public
export function rtrim(fieldName: string, valueToTrim?: string | Expression | Bytes): FunctionExpression;

// @public
export function rtrim(expression: Expression, valueToTrim?: string | Expression | Bytes): FunctionExpression;

// @public
export type SampleStageOptions = StageOptions & OneOf<{
    percentage: number;
    documents: number;
}>;

// @beta
export function score(): Expression;

// @beta
export type SearchStageOptions = StageOptions & {
    query: BooleanExpression | string;
    sort?: Ordering | Ordering[];
    addFields?: Selectable[];
};

// @public
export interface Selectable {
    // (undocumented)
    selectable: true;
}

// @public
export type SelectStageOptions = StageOptions & {
    selections: Array<Selectable | string>;
};

// @public
export type SortStageOptions = StageOptions & {
    orderings: Ordering[];
};

// @public
export function split(fieldName: string, delimiter: string): FunctionExpression;

// @public
export function split(fieldName: string, delimiter: Expression): FunctionExpression;

// @public
export function split(expression: Expression, delimiter: string): FunctionExpression;

// @public
export function split(expression: Expression, delimiter: Expression): FunctionExpression;

// @public
export function sqrt(expression: Expression): FunctionExpression;

// @public
export function sqrt(fieldName: string): FunctionExpression;

// @public
export type StageOptions = {
    rawOptions?: {
        [name: string]: unknown;
    };
};

// @public
export function startsWith(fieldName: string, prefix: string): BooleanExpression;

// @public
export function startsWith(fieldName: string, prefix: Expression): BooleanExpression;

// @public
export function startsWith(stringExpression: Expression, prefix: string): BooleanExpression;

// @public
export function startsWith(stringExpression: Expression, prefix: Expression): BooleanExpression;

// @public
export function stringConcat(fieldName: string, secondString: Expression | string, ...otherStrings: Array<Expression | string>): FunctionExpression;

// @public
export function stringConcat(firstString: Expression, secondString: Expression | string, ...otherStrings: Array<Expression | string>): FunctionExpression;

// @public
export function stringContains(fieldName: string, substring: string): BooleanExpression;

// @public
export function stringContains(fieldName: string, substring: Expression): BooleanExpression;

// @public
export function stringContains(stringExpression: Expression, substring: string): BooleanExpression;

// @public
export function stringContains(stringExpression: Expression, substring: Expression): BooleanExpression;

// @public
export function stringIndexOf(fieldName: string, search: string | Expression | Bytes): FunctionExpression;

// @public
export function stringIndexOf(expression: Expression, search: string | Expression | Bytes): FunctionExpression;

// @public
export function stringRepeat(fieldName: string, repetitions: number | Expression): FunctionExpression;

// @public
export function stringRepeat(expression: Expression, repetitions: number | Expression): FunctionExpression;

// @public
export function stringReplaceAll(fieldName: string, find: string | Expression | Bytes, replacement: string | Expression | Bytes): FunctionExpression;

// @public
export function stringReplaceAll(expression: Expression, find: string | Expression | Bytes, replacement: string | Expression | Bytes): FunctionExpression;

// @public
export function stringReplaceOne(fieldName: string, find: string | Expression | Bytes, replacement: string | Expression | Bytes): FunctionExpression;

// @public
export function stringReplaceOne(expression: Expression, find: string | Expression | Bytes, replacement: string | Expression | Bytes): FunctionExpression;

// @public
export function stringReverse(stringExpression: Expression): FunctionExpression;

// @public
export function stringReverse(field: string): FunctionExpression;

// @public
export function subcollection(path: string): Pipeline;

// @public
export function subcollection(options: SubcollectionStageOptions): Pipeline;

// @public
export type SubcollectionStageOptions = StageOptions & {
    path: string;
};

// @public
export function substring(field: string, position: number, length?: number): FunctionExpression;

// @public
export function substring(input: Expression, position: number, length?: number): FunctionExpression;

// @public
export function substring(field: string, position: Expression, length?: Expression): FunctionExpression;

// @public
export function substring(input: Expression, position: Expression, length?: Expression): FunctionExpression;

// @public
export function subtract(left: Expression, right: Expression): FunctionExpression;

// @public
export function subtract(expression: Expression, value: unknown): FunctionExpression;

// @public
export function subtract(fieldName: string, expression: Expression): FunctionExpression;

// @public
export function subtract(fieldName: string, value: unknown): FunctionExpression;

// @public
export function sum(expression: Expression): AggregateFunction;

// @public
export function sum(fieldName: string): AggregateFunction;

// @public
export function switchOn(condition: BooleanExpression, result: Expression, ...others: Array<BooleanExpression | Expression>): FunctionExpression;

// @public
export type TimeGranularity = TimeUnit | 'week' | 'week(monday)' | 'week(tuesday)' | 'week(wednesday)' | 'week(thursday)' | 'week(friday)' | 'week(saturday)' | 'week(sunday)' | 'isoweek' | 'month' | 'quarter' | 'year' | 'isoyear';

// @public
export type TimePart = TimeGranularity | 'dayofweek' | 'dayofyear';

// @public
export function timestampAdd(timestamp: Expression, unit: Expression, amount: Expression): FunctionExpression;

// @public
export function timestampAdd(timestamp: Expression, unit: TimeUnit, amount: number): FunctionExpression;

// @public
export function timestampAdd(fieldName: string, unit: TimeUnit, amount: number): FunctionExpression;

// @public (undocumented)
export function timestampDiff(endFieldName: string, startFieldName: string, unit: TimeUnit | Expression): FunctionExpression;

// @public
export function timestampDiff(endFieldName: string, startExpression: Expression, unit: TimeUnit | Expression): FunctionExpression;

// @public
export function timestampDiff(endExpression: Expression, startFieldName: string, unit: TimeUnit | Expression): FunctionExpression;

// @public
export function timestampDiff(endExpression: Expression, startExpression: Expression, unit: TimeUnit | Expression): FunctionExpression;

// @public
export function timestampExtract(fieldName: string, part: TimePart, timezone?: string | Expression): FunctionExpression;

// @public
export function timestampExtract(fieldName: string, part: Expression, timezone?: string | Expression): FunctionExpression;

// @public
export function timestampExtract(timestampExpression: Expression, part: TimePart, timezone?: string | Expression): FunctionExpression;

// @public
export function timestampExtract(timestampExpression: Expression, part: Expression, timezone?: string | Expression): FunctionExpression;

// @public
export function timestampSubtract(timestamp: Expression, unit: Expression, amount: Expression): FunctionExpression;

// @public
export function timestampSubtract(timestamp: Expression, unit: TimeUnit, amount: number): FunctionExpression;

// @public
export function timestampSubtract(fieldName: string, unit: TimeUnit, amount: number): FunctionExpression;

// @public
export function timestampToUnixMicros(expr: Expression): FunctionExpression;

// @public
export function timestampToUnixMicros(fieldName: string): FunctionExpression;

// @public
export function timestampToUnixMillis(expr: Expression): FunctionExpression;

// @public
export function timestampToUnixMillis(fieldName: string): FunctionExpression;

// @public
export function timestampToUnixSeconds(expr: Expression): FunctionExpression;

// @public
export function timestampToUnixSeconds(fieldName: string): FunctionExpression;

// @public
export function timestampTruncate(fieldName: string, granularity: TimeGranularity, timezone?: string | Expression): FunctionExpression;

// @public
export function timestampTruncate(fieldName: string, granularity: Expression, timezone?: string | Expression): FunctionExpression;

// @public
export function timestampTruncate(timestampExpression: Expression, granularity: TimeGranularity, timezone?: string | Expression): FunctionExpression;

// @public
export function timestampTruncate(timestampExpression: Expression, granularity: Expression, timezone?: string | Expression): FunctionExpression;

// @public
export type TimeUnit = 'microsecond' | 'millisecond' | 'second' | 'minute' | 'hour' | 'day';

// @public
export function toLower(fieldName: string): FunctionExpression;

// @public
export function toLower(stringExpression: Expression): FunctionExpression;

// @public
export function toUpper(fieldName: string): FunctionExpression;

// @public
export function toUpper(stringExpression: Expression): FunctionExpression;

// @public
export function trim(fieldName: string, valueToTrim?: string | Expression): FunctionExpression;

// @public
export function trim(stringExpression: Expression, valueToTrim?: string | Expression): FunctionExpression;

// @public
export function trunc(fieldName: string): FunctionExpression;

// @public
export function trunc(expression: Expression): FunctionExpression;

// @public
export function trunc(fieldName: string, decimalPlaces: number | Expression): FunctionExpression;

// @public
export function trunc(expression: Expression, decimalPlaces: number | Expression): FunctionExpression;

// @public
export type Type = 'null' | 'array' | 'boolean' | 'bytes' | 'timestamp' | 'geo_point' | 'number' | 'int32' | 'int64' | 'float64' | 'decimal128' | 'map' | 'reference' | 'string' | 'vector' | 'max_key' | 'min_key' | 'object_id' | 'regex' | 'request_timestamp';

// @public
export function type(fieldName: string): FunctionExpression;

// @public
export function type(expression: Expression): FunctionExpression;

// @public
export type UnionStageOptions = StageOptions & {
    other: Pipeline;
};

// @public
export function unixMicrosToTimestamp(expr: Expression): FunctionExpression;

// @public
export function unixMicrosToTimestamp(fieldName: string): FunctionExpression;

// @public
export function unixMillisToTimestamp(expr: Expression): FunctionExpression;

// @public
export function unixMillisToTimestamp(fieldName: string): FunctionExpression;

// @public
export function unixSecondsToTimestamp(expr: Expression): FunctionExpression;

// @public
export function unixSecondsToTimestamp(fieldName: string): FunctionExpression;

// @public
export type UnnestStageOptions = StageOptions & {
    selectable: Selectable;
    indexField?: string;
};

// @public
export function variable(name: string): Expression;

// @public
export function vectorLength(vectorExpression: Expression): FunctionExpression;

// @public
export function vectorLength(fieldName: string): FunctionExpression;

// @public
export type WhereStageOptions = StageOptions & {
    condition: BooleanExpression;
};

// @public
export function xor(first: BooleanExpression, second: BooleanExpression, ...additionalConditions: BooleanExpression[]): BooleanExpression;


// (No @packageDocumentation comment for this package)