import { type CallContext, type CallOptions } from "nice-grpc-common";
import { AggregateReply, AggregateRequest } from "./aggregate.js";
import { BatchObjectsReply, BatchObjectsRequest, BatchReferencesReply, BatchReferencesRequest, BatchStreamReply, BatchStreamRequest } from "./batch.js";
import { BatchDeleteReply, BatchDeleteRequest } from "./batch_delete.js";
import { SearchReply, SearchRequest } from "./search_get.js";
import { TenantsGetReply, TenantsGetRequest } from "./tenants.js";
export declare const protobufPackage = "weaviate.v1";
export type WeaviateDefinition = typeof WeaviateDefinition;
export declare const WeaviateDefinition: {
    readonly name: "Weaviate";
    readonly fullName: "weaviate.v1.Weaviate";
    readonly methods: {
        readonly search: {
            readonly name: "Search";
            readonly requestType: {
                encode(message: SearchRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): SearchRequest;
                fromJSON(object: any): SearchRequest;
                toJSON(message: SearchRequest): unknown;
                create(base?: import("./search_get.js").DeepPartial<SearchRequest>): SearchRequest;
                fromPartial(object: import("./search_get.js").DeepPartial<SearchRequest>): SearchRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: SearchReply, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): SearchReply;
                fromJSON(object: any): SearchReply;
                toJSON(message: SearchReply): unknown;
                create(base?: import("./search_get.js").DeepPartial<SearchReply>): SearchReply;
                fromPartial(object: import("./search_get.js").DeepPartial<SearchReply>): SearchReply;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly batchObjects: {
            readonly name: "BatchObjects";
            readonly requestType: {
                encode(message: BatchObjectsRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): BatchObjectsRequest;
                fromJSON(object: any): BatchObjectsRequest;
                toJSON(message: BatchObjectsRequest): unknown;
                create(base?: import("./batch.js").DeepPartial<BatchObjectsRequest>): BatchObjectsRequest;
                fromPartial(object: import("./batch.js").DeepPartial<BatchObjectsRequest>): BatchObjectsRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: BatchObjectsReply, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): BatchObjectsReply;
                fromJSON(object: any): BatchObjectsReply;
                toJSON(message: BatchObjectsReply): unknown;
                create(base?: import("./batch.js").DeepPartial<BatchObjectsReply>): BatchObjectsReply;
                fromPartial(object: import("./batch.js").DeepPartial<BatchObjectsReply>): BatchObjectsReply;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly batchReferences: {
            readonly name: "BatchReferences";
            readonly requestType: {
                encode(message: BatchReferencesRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): BatchReferencesRequest;
                fromJSON(object: any): BatchReferencesRequest;
                toJSON(message: BatchReferencesRequest): unknown;
                create(base?: import("./batch.js").DeepPartial<BatchReferencesRequest>): BatchReferencesRequest;
                fromPartial(object: import("./batch.js").DeepPartial<BatchReferencesRequest>): BatchReferencesRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: BatchReferencesReply, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): BatchReferencesReply;
                fromJSON(object: any): BatchReferencesReply;
                toJSON(message: BatchReferencesReply): unknown;
                create(base?: import("./batch.js").DeepPartial<BatchReferencesReply>): BatchReferencesReply;
                fromPartial(object: import("./batch.js").DeepPartial<BatchReferencesReply>): BatchReferencesReply;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly batchDelete: {
            readonly name: "BatchDelete";
            readonly requestType: {
                encode(message: BatchDeleteRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): BatchDeleteRequest;
                fromJSON(object: any): BatchDeleteRequest;
                toJSON(message: BatchDeleteRequest): unknown;
                create(base?: import("./batch_delete.js").DeepPartial<BatchDeleteRequest>): BatchDeleteRequest;
                fromPartial(object: import("./batch_delete.js").DeepPartial<BatchDeleteRequest>): BatchDeleteRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: BatchDeleteReply, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): BatchDeleteReply;
                fromJSON(object: any): BatchDeleteReply;
                toJSON(message: BatchDeleteReply): unknown;
                create(base?: import("./batch_delete.js").DeepPartial<BatchDeleteReply>): BatchDeleteReply;
                fromPartial(object: import("./batch_delete.js").DeepPartial<BatchDeleteReply>): BatchDeleteReply;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly tenantsGet: {
            readonly name: "TenantsGet";
            readonly requestType: {
                encode(message: TenantsGetRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): TenantsGetRequest;
                fromJSON(object: any): TenantsGetRequest;
                toJSON(message: TenantsGetRequest): unknown;
                create(base?: import("./tenants.js").DeepPartial<TenantsGetRequest>): TenantsGetRequest;
                fromPartial(object: import("./tenants.js").DeepPartial<TenantsGetRequest>): TenantsGetRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: TenantsGetReply, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): TenantsGetReply;
                fromJSON(object: any): TenantsGetReply;
                toJSON(message: TenantsGetReply): unknown;
                create(base?: import("./tenants.js").DeepPartial<TenantsGetReply>): TenantsGetReply;
                fromPartial(object: import("./tenants.js").DeepPartial<TenantsGetReply>): TenantsGetReply;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly aggregate: {
            readonly name: "Aggregate";
            readonly requestType: {
                encode(message: AggregateRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): AggregateRequest;
                fromJSON(object: any): AggregateRequest;
                toJSON(message: AggregateRequest): unknown;
                create(base?: import("./aggregate.js").DeepPartial<AggregateRequest>): AggregateRequest;
                fromPartial(object: import("./aggregate.js").DeepPartial<AggregateRequest>): AggregateRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: AggregateReply, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): AggregateReply;
                fromJSON(object: any): AggregateReply;
                toJSON(message: AggregateReply): unknown;
                create(base?: import("./aggregate.js").DeepPartial<AggregateReply>): AggregateReply;
                fromPartial(object: import("./aggregate.js").DeepPartial<AggregateReply>): AggregateReply;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly batchStream: {
            readonly name: "BatchStream";
            readonly requestType: {
                encode(message: BatchStreamRequest, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): BatchStreamRequest;
                fromJSON(object: any): BatchStreamRequest;
                toJSON(message: BatchStreamRequest): unknown;
                create(base?: import("./batch.js").DeepPartial<BatchStreamRequest>): BatchStreamRequest;
                fromPartial(object: import("./batch.js").DeepPartial<BatchStreamRequest>): BatchStreamRequest;
            };
            readonly requestStream: true;
            readonly responseType: {
                encode(message: BatchStreamReply, writer?: import("protobufjs").Writer): import("protobufjs").Writer;
                decode(input: import("protobufjs").Reader | Uint8Array, length?: number): BatchStreamReply;
                fromJSON(object: any): BatchStreamReply;
                toJSON(message: BatchStreamReply): unknown;
                create(base?: import("./batch.js").DeepPartial<BatchStreamReply>): BatchStreamReply;
                fromPartial(object: import("./batch.js").DeepPartial<BatchStreamReply>): BatchStreamReply;
            };
            readonly responseStream: true;
            readonly options: {};
        };
    };
};
export interface WeaviateServiceImplementation<CallContextExt = {}> {
    search(request: SearchRequest, context: CallContext & CallContextExt): Promise<DeepPartial<SearchReply>>;
    batchObjects(request: BatchObjectsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<BatchObjectsReply>>;
    batchReferences(request: BatchReferencesRequest, context: CallContext & CallContextExt): Promise<DeepPartial<BatchReferencesReply>>;
    batchDelete(request: BatchDeleteRequest, context: CallContext & CallContextExt): Promise<DeepPartial<BatchDeleteReply>>;
    tenantsGet(request: TenantsGetRequest, context: CallContext & CallContextExt): Promise<DeepPartial<TenantsGetReply>>;
    aggregate(request: AggregateRequest, context: CallContext & CallContextExt): Promise<DeepPartial<AggregateReply>>;
    batchStream(request: AsyncIterable<BatchStreamRequest>, context: CallContext & CallContextExt): ServerStreamingMethodResult<DeepPartial<BatchStreamReply>>;
}
export interface WeaviateClient<CallOptionsExt = {}> {
    search(request: DeepPartial<SearchRequest>, options?: CallOptions & CallOptionsExt): Promise<SearchReply>;
    batchObjects(request: DeepPartial<BatchObjectsRequest>, options?: CallOptions & CallOptionsExt): Promise<BatchObjectsReply>;
    batchReferences(request: DeepPartial<BatchReferencesRequest>, options?: CallOptions & CallOptionsExt): Promise<BatchReferencesReply>;
    batchDelete(request: DeepPartial<BatchDeleteRequest>, options?: CallOptions & CallOptionsExt): Promise<BatchDeleteReply>;
    tenantsGet(request: DeepPartial<TenantsGetRequest>, options?: CallOptions & CallOptionsExt): Promise<TenantsGetReply>;
    aggregate(request: DeepPartial<AggregateRequest>, options?: CallOptions & CallOptionsExt): Promise<AggregateReply>;
    batchStream(request: AsyncIterable<DeepPartial<BatchStreamRequest>>, options?: CallOptions & CallOptionsExt): AsyncIterable<BatchStreamReply>;
}
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export type ServerStreamingMethodResult<Response> = {
    [Symbol.asyncIterator](): AsyncIterator<Response, void>;
};
export {};
