import * as dependency_2 from "./document";
import * as dependency_3 from "./../../protobuf/wrappers";
import * as pb_1 from "google-protobuf";
export declare class StructuredQuery extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        select?: StructuredQueryProjection;
        from?: StructuredQueryCollectionSelector[];
        where?: StructuredQueryFilter;
        order_by?: StructuredQueryOrder[];
        start_at?: Cursor;
        end_at?: Cursor;
        offset?: number;
        limit?: dependency_3.Int32Value;
        find_nearest?: StructuredQueryFindNearest;
    });
    get select(): StructuredQueryProjection;
    set select(value: StructuredQueryProjection);
    get has_select(): boolean;
    get from(): StructuredQueryCollectionSelector[];
    set from(value: StructuredQueryCollectionSelector[]);
    get where(): StructuredQueryFilter;
    set where(value: StructuredQueryFilter);
    get has_where(): boolean;
    get order_by(): StructuredQueryOrder[];
    set order_by(value: StructuredQueryOrder[]);
    get start_at(): Cursor;
    set start_at(value: Cursor);
    get has_start_at(): boolean;
    get end_at(): Cursor;
    set end_at(value: Cursor);
    get has_end_at(): boolean;
    get offset(): number;
    set offset(value: number);
    get limit(): dependency_3.Int32Value;
    set limit(value: dependency_3.Int32Value);
    get has_limit(): boolean;
    get find_nearest(): StructuredQueryFindNearest;
    set find_nearest(value: StructuredQueryFindNearest);
    get has_find_nearest(): boolean;
    static fromObject(data: {
        select?: ReturnType<typeof StructuredQueryProjection.prototype.toObject>;
        from?: ReturnType<typeof StructuredQueryCollectionSelector.prototype.toObject>[];
        where?: ReturnType<typeof StructuredQueryFilter.prototype.toObject>;
        order_by?: ReturnType<typeof StructuredQueryOrder.prototype.toObject>[];
        start_at?: ReturnType<typeof Cursor.prototype.toObject>;
        end_at?: ReturnType<typeof Cursor.prototype.toObject>;
        offset?: number;
        limit?: ReturnType<typeof dependency_3.Int32Value.prototype.toObject>;
        find_nearest?: ReturnType<typeof StructuredQueryFindNearest.prototype.toObject>;
    }): StructuredQuery;
    toObject(): {
        select?: ReturnType<typeof StructuredQueryProjection.prototype.toObject>;
        from?: ReturnType<typeof StructuredQueryCollectionSelector.prototype.toObject>[];
        where?: ReturnType<typeof StructuredQueryFilter.prototype.toObject>;
        order_by?: ReturnType<typeof StructuredQueryOrder.prototype.toObject>[];
        start_at?: ReturnType<typeof Cursor.prototype.toObject>;
        end_at?: ReturnType<typeof Cursor.prototype.toObject>;
        offset?: number;
        limit?: ReturnType<typeof dependency_3.Int32Value.prototype.toObject>;
        find_nearest?: ReturnType<typeof StructuredQueryFindNearest.prototype.toObject>;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQuery;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQuery;
}
export declare enum StructuredQueryDirection {
    DIRECTION_UNSPECIFIED = 0,
    ASCENDING = 1,
    DESCENDING = 2
}
export declare class StructuredQueryCollectionSelector extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        collection_id?: string;
        all_descendants?: boolean;
    });
    get collection_id(): string;
    set collection_id(value: string);
    get all_descendants(): boolean;
    set all_descendants(value: boolean);
    static fromObject(data: {
        collection_id?: string;
        all_descendants?: boolean;
    }): StructuredQueryCollectionSelector;
    toObject(): {
        collection_id?: string;
        all_descendants?: boolean;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQueryCollectionSelector;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQueryCollectionSelector;
}
export declare class StructuredQueryFilter extends pb_1.Message {
    #private;
    constructor(data?: any[] | ({} & (({
        composite_filter?: StructuredQueryCompositeFilter;
        field_filter?: never;
        unary_filter?: never;
    } | {
        composite_filter?: never;
        field_filter?: StructuredQueryFieldFilter;
        unary_filter?: never;
    } | {
        composite_filter?: never;
        field_filter?: never;
        unary_filter?: StructuredQueryUnaryFilter;
    }))));
    get composite_filter(): StructuredQueryCompositeFilter;
    set composite_filter(value: StructuredQueryCompositeFilter);
    get has_composite_filter(): boolean;
    get field_filter(): StructuredQueryFieldFilter;
    set field_filter(value: StructuredQueryFieldFilter);
    get has_field_filter(): boolean;
    get unary_filter(): StructuredQueryUnaryFilter;
    set unary_filter(value: StructuredQueryUnaryFilter);
    get has_unary_filter(): boolean;
    get filter_type(): "none" | "composite_filter" | "field_filter" | "unary_filter";
    static fromObject(data: {
        composite_filter?: ReturnType<typeof StructuredQueryCompositeFilter.prototype.toObject>;
        field_filter?: ReturnType<typeof StructuredQueryFieldFilter.prototype.toObject>;
        unary_filter?: ReturnType<typeof StructuredQueryUnaryFilter.prototype.toObject>;
    }): StructuredQueryFilter;
    toObject(): {
        composite_filter?: ReturnType<typeof StructuredQueryCompositeFilter.prototype.toObject>;
        field_filter?: ReturnType<typeof StructuredQueryFieldFilter.prototype.toObject>;
        unary_filter?: ReturnType<typeof StructuredQueryUnaryFilter.prototype.toObject>;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQueryFilter;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQueryFilter;
}
export declare class StructuredQueryCompositeFilter extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        op?: StructuredQueryCompositeFilterOperator;
        filters?: StructuredQueryFilter[];
    });
    get op(): StructuredQueryCompositeFilterOperator;
    set op(value: StructuredQueryCompositeFilterOperator);
    get filters(): StructuredQueryFilter[];
    set filters(value: StructuredQueryFilter[]);
    static fromObject(data: {
        op?: StructuredQueryCompositeFilterOperator;
        filters?: ReturnType<typeof StructuredQueryFilter.prototype.toObject>[];
    }): StructuredQueryCompositeFilter;
    toObject(): {
        op?: StructuredQueryCompositeFilterOperator;
        filters?: ReturnType<typeof StructuredQueryFilter.prototype.toObject>[];
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQueryCompositeFilter;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQueryCompositeFilter;
}
export declare enum StructuredQueryCompositeFilterOperator {
    OPERATOR_UNSPECIFIED = 0,
    AND = 1,
    OR = 2
}
export declare class StructuredQueryFieldFilter extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        field?: StructuredQueryFieldReference;
        op?: StructuredQueryFieldFilterOperator;
        value?: dependency_2.Value;
    });
    get field(): StructuredQueryFieldReference;
    set field(value: StructuredQueryFieldReference);
    get has_field(): boolean;
    get op(): StructuredQueryFieldFilterOperator;
    set op(value: StructuredQueryFieldFilterOperator);
    get value(): dependency_2.Value;
    set value(value: dependency_2.Value);
    get has_value(): boolean;
    static fromObject(data: {
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
        op?: StructuredQueryFieldFilterOperator;
        value?: ReturnType<typeof dependency_2.Value.prototype.toObject>;
    }): StructuredQueryFieldFilter;
    toObject(): {
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
        op?: StructuredQueryFieldFilterOperator;
        value?: ReturnType<typeof dependency_2.Value.prototype.toObject>;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQueryFieldFilter;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQueryFieldFilter;
}
export declare enum StructuredQueryFieldFilterOperator {
    OPERATOR_UNSPECIFIED = 0,
    LESS_THAN = 1,
    LESS_THAN_OR_EQUAL = 2,
    GREATER_THAN = 3,
    GREATER_THAN_OR_EQUAL = 4,
    EQUAL = 5,
    NOT_EQUAL = 6,
    ARRAY_CONTAINS = 7,
    IN = 8,
    ARRAY_CONTAINS_ANY = 9,
    NOT_IN = 10
}
export declare class StructuredQueryUnaryFilter extends pb_1.Message {
    #private;
    constructor(data?: any[] | ({
        op?: StructuredQueryUnaryFilterOperator;
    } & (({
        field?: StructuredQueryFieldReference;
    }))));
    get op(): StructuredQueryUnaryFilterOperator;
    set op(value: StructuredQueryUnaryFilterOperator);
    get field(): StructuredQueryFieldReference;
    set field(value: StructuredQueryFieldReference);
    get has_field(): boolean;
    get operand_type(): "none" | "field";
    static fromObject(data: {
        op?: StructuredQueryUnaryFilterOperator;
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
    }): StructuredQueryUnaryFilter;
    toObject(): {
        op?: StructuredQueryUnaryFilterOperator;
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQueryUnaryFilter;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQueryUnaryFilter;
}
export declare enum StructuredQueryUnaryFilterOperator {
    OPERATOR_UNSPECIFIED = 0,
    IS_NAN = 2,
    IS_NULL = 3,
    IS_NOT_NAN = 4,
    IS_NOT_NULL = 5
}
export declare class StructuredQueryOrder extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        field?: StructuredQueryFieldReference;
        direction?: StructuredQueryDirection;
    });
    get field(): StructuredQueryFieldReference;
    set field(value: StructuredQueryFieldReference);
    get has_field(): boolean;
    get direction(): StructuredQueryDirection;
    set direction(value: StructuredQueryDirection);
    static fromObject(data: {
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
        direction?: StructuredQueryDirection;
    }): StructuredQueryOrder;
    toObject(): {
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
        direction?: StructuredQueryDirection;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQueryOrder;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQueryOrder;
}
export declare class StructuredQueryFieldReference extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        field_path?: string;
    });
    get field_path(): string;
    set field_path(value: string);
    static fromObject(data: {
        field_path?: string;
    }): StructuredQueryFieldReference;
    toObject(): {
        field_path?: string;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQueryFieldReference;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQueryFieldReference;
}
export declare class StructuredQueryProjection extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        fields?: StructuredQueryFieldReference[];
    });
    get fields(): StructuredQueryFieldReference[];
    set fields(value: StructuredQueryFieldReference[]);
    static fromObject(data: {
        fields?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>[];
    }): StructuredQueryProjection;
    toObject(): {
        fields?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>[];
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQueryProjection;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQueryProjection;
}
export declare class StructuredQueryFindNearest extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        vector_field?: StructuredQueryFieldReference;
        query_vector?: dependency_2.Value;
        distance_measure?: StructuredQueryFindNearestDistanceMeasure;
        limit?: dependency_3.Int32Value;
        distance_result_field?: string;
        distance_threshold?: dependency_3.DoubleValue;
    });
    get vector_field(): StructuredQueryFieldReference;
    set vector_field(value: StructuredQueryFieldReference);
    get has_vector_field(): boolean;
    get query_vector(): dependency_2.Value;
    set query_vector(value: dependency_2.Value);
    get has_query_vector(): boolean;
    get distance_measure(): StructuredQueryFindNearestDistanceMeasure;
    set distance_measure(value: StructuredQueryFindNearestDistanceMeasure);
    get limit(): dependency_3.Int32Value;
    set limit(value: dependency_3.Int32Value);
    get has_limit(): boolean;
    get distance_result_field(): string;
    set distance_result_field(value: string);
    get distance_threshold(): dependency_3.DoubleValue;
    set distance_threshold(value: dependency_3.DoubleValue);
    get has_distance_threshold(): boolean;
    static fromObject(data: {
        vector_field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
        query_vector?: ReturnType<typeof dependency_2.Value.prototype.toObject>;
        distance_measure?: StructuredQueryFindNearestDistanceMeasure;
        limit?: ReturnType<typeof dependency_3.Int32Value.prototype.toObject>;
        distance_result_field?: string;
        distance_threshold?: ReturnType<typeof dependency_3.DoubleValue.prototype.toObject>;
    }): StructuredQueryFindNearest;
    toObject(): {
        vector_field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
        query_vector?: ReturnType<typeof dependency_2.Value.prototype.toObject>;
        distance_measure?: StructuredQueryFindNearestDistanceMeasure;
        limit?: ReturnType<typeof dependency_3.Int32Value.prototype.toObject>;
        distance_result_field?: string;
        distance_threshold?: ReturnType<typeof dependency_3.DoubleValue.prototype.toObject>;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredQueryFindNearest;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredQueryFindNearest;
}
export declare enum StructuredQueryFindNearestDistanceMeasure {
    DISTANCE_MEASURE_UNSPECIFIED = 0,
    EUCLIDEAN = 1,
    COSINE = 2,
    DOT_PRODUCT = 3
}
export declare class StructuredAggregationQuery extends pb_1.Message {
    #private;
    constructor(data?: any[] | ({
        aggregations?: StructuredAggregationQueryAggregation[];
    } & (({
        structured_query?: StructuredQuery;
    }))));
    get structured_query(): StructuredQuery;
    set structured_query(value: StructuredQuery);
    get has_structured_query(): boolean;
    get aggregations(): StructuredAggregationQueryAggregation[];
    set aggregations(value: StructuredAggregationQueryAggregation[]);
    get query_type(): "none" | "structured_query";
    static fromObject(data: {
        structured_query?: ReturnType<typeof StructuredQuery.prototype.toObject>;
        aggregations?: ReturnType<typeof StructuredAggregationQueryAggregation.prototype.toObject>[];
    }): StructuredAggregationQuery;
    toObject(): {
        structured_query?: ReturnType<typeof StructuredQuery.prototype.toObject>;
        aggregations?: ReturnType<typeof StructuredAggregationQueryAggregation.prototype.toObject>[];
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredAggregationQuery;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredAggregationQuery;
}
export declare class StructuredAggregationQueryAggregation extends pb_1.Message {
    #private;
    constructor(data?: any[] | ({
        alias?: string;
    } & (({
        count?: StructuredAggregationQueryAggregationCount;
        sum?: never;
        avg?: never;
    } | {
        count?: never;
        sum?: StructuredAggregationQueryAggregationSum;
        avg?: never;
    } | {
        count?: never;
        sum?: never;
        avg?: StructuredAggregationQueryAggregationAvg;
    }))));
    get count(): StructuredAggregationQueryAggregationCount;
    set count(value: StructuredAggregationQueryAggregationCount);
    get has_count(): boolean;
    get sum(): StructuredAggregationQueryAggregationSum;
    set sum(value: StructuredAggregationQueryAggregationSum);
    get has_sum(): boolean;
    get avg(): StructuredAggregationQueryAggregationAvg;
    set avg(value: StructuredAggregationQueryAggregationAvg);
    get has_avg(): boolean;
    get alias(): string;
    set alias(value: string);
    get operator(): "none" | "sum" | "count" | "avg";
    static fromObject(data: {
        count?: ReturnType<typeof StructuredAggregationQueryAggregationCount.prototype.toObject>;
        sum?: ReturnType<typeof StructuredAggregationQueryAggregationSum.prototype.toObject>;
        avg?: ReturnType<typeof StructuredAggregationQueryAggregationAvg.prototype.toObject>;
        alias?: string;
    }): StructuredAggregationQueryAggregation;
    toObject(): {
        count?: ReturnType<typeof StructuredAggregationQueryAggregationCount.prototype.toObject>;
        sum?: ReturnType<typeof StructuredAggregationQueryAggregationSum.prototype.toObject>;
        avg?: ReturnType<typeof StructuredAggregationQueryAggregationAvg.prototype.toObject>;
        alias?: string;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredAggregationQueryAggregation;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredAggregationQueryAggregation;
}
export declare class StructuredAggregationQueryAggregationCount extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        up_to?: dependency_3.Int64Value;
    });
    get up_to(): dependency_3.Int64Value;
    set up_to(value: dependency_3.Int64Value);
    get has_up_to(): boolean;
    static fromObject(data: {
        up_to?: ReturnType<typeof dependency_3.Int64Value.prototype.toObject>;
    }): StructuredAggregationQueryAggregationCount;
    toObject(): {
        up_to?: ReturnType<typeof dependency_3.Int64Value.prototype.toObject>;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredAggregationQueryAggregationCount;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredAggregationQueryAggregationCount;
}
export declare class StructuredAggregationQueryAggregationSum extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        field?: StructuredQueryFieldReference;
    });
    get field(): StructuredQueryFieldReference;
    set field(value: StructuredQueryFieldReference);
    get has_field(): boolean;
    static fromObject(data: {
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
    }): StructuredAggregationQueryAggregationSum;
    toObject(): {
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredAggregationQueryAggregationSum;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredAggregationQueryAggregationSum;
}
export declare class StructuredAggregationQueryAggregationAvg extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        field?: StructuredQueryFieldReference;
    });
    get field(): StructuredQueryFieldReference;
    set field(value: StructuredQueryFieldReference);
    get has_field(): boolean;
    static fromObject(data: {
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
    }): StructuredAggregationQueryAggregationAvg;
    toObject(): {
        field?: ReturnType<typeof StructuredQueryFieldReference.prototype.toObject>;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): StructuredAggregationQueryAggregationAvg;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): StructuredAggregationQueryAggregationAvg;
}
export declare class Cursor extends pb_1.Message {
    #private;
    constructor(data?: any[] | {
        values?: dependency_2.Value[];
        before?: boolean;
    });
    get values(): dependency_2.Value[];
    set values(value: dependency_2.Value[]);
    get before(): boolean;
    set before(value: boolean);
    static fromObject(data: {
        values?: ReturnType<typeof dependency_2.Value.prototype.toObject>[];
        before?: boolean;
    }): Cursor;
    toObject(): {
        values?: ReturnType<typeof dependency_2.Value.prototype.toObject>[];
        before?: boolean;
    };
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Cursor;
    serializeBinary(): Uint8Array;
    static deserializeBinary(bytes: Uint8Array): Cursor;
}
//# sourceMappingURL=query.d.ts.map