import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { type CallOptions, type ChannelCredentials, Client, type ClientOptions, type ClientReadableStream, type ClientUnaryCall, type handleServerStreamingCall, type handleUnaryCall, type Metadata, type ServiceError, type UntypedServiceImplementation } from "@grpc/grpc-js";
import { AddDocumentsRequest, AddDocumentsResponse, ContentType, GetDocumentsRequest, GetDocumentsResponse, GetDocumentStatusRequest, GetDocumentStatusResponse, ProcessDocumentsRequest, ProcessDocumentsResponse, RemoveDocumentsRequest, RemoveDocumentsResponse, UpdateDocumentsRequest, UpdateDocumentsResponse } from "./documents.js";
import { GetContentRequest, GetContentResponse, GetIntentsRequest, GetKeywordsRequest, GetKeywordsResponse, GetScoreLimitsRequest, GetScoreLimitsResponse, Intent, RemoveContentRequest, RemoveContentResponse, UpdateContentRequest, UpdateContentResponse } from "./intents.js";
import { AddProjectRequest, AddProjectResponse, EmbeddingModel, GetEmbeddingModelsRequest, GetProjectsRequest, Project, RemoveProjectRequest, RemoveProjectResponse, UpdateProjectRequest, UpdateProjectResponse } from "./projects.js";
export declare const protobufPackage = "aristech.nlp";
/** Request for the list of functions provided by the server. */
export interface FunctionRequest {
}
/**
 * Describes a specific operation that can be applied to incoming text,
 * such as classification or recasing.
 */
export interface FunctionMessage {
    /** Unique identifier of the function. */
    id: string;
    /** Descriptive name of the function. */
    name: string;
    /** Detailed description of the function. */
    description: string;
    /** List of arguments accepted by the function. */
    arguments: string[];
    /** bool that indicates if the function can process attachments */
    supportsAttachments: boolean;
    supportedContentTypes: ContentType[];
}
/** Request to process raw text using specified functions. */
export interface RunFunctionsRequest {
    /** List of functions to apply. */
    functions: FunctionMessage[];
    /** The raw text to process. */
    input: string;
    /** Additional parameters for the functions. */
    arguments: string[];
    /** Optional attachments for additional data (e.g. images, files). */
    attachments: Attachment[];
}
export interface Attachment {
    /** A unique identifier or filename for the attachment. */
    name: string;
    /** MIME type (e.g. "image/png", "application/pdf"). */
    contentType: ContentType;
    /** Raw binary data of the attachment. */
    data: Uint8Array;
}
/** Response message containing the result of text processing. */
export interface RunFunctionsResponse {
    /** The processed text result. */
    output: string;
}
export interface SyncDBsRequest {
}
export interface SyncDBsResponse {
    status: string;
}
export declare const FunctionRequest: MessageFns<FunctionRequest>;
export declare const FunctionMessage: MessageFns<FunctionMessage>;
export declare const RunFunctionsRequest: MessageFns<RunFunctionsRequest>;
export declare const Attachment: MessageFns<Attachment>;
export declare const RunFunctionsResponse: MessageFns<RunFunctionsResponse>;
export declare const SyncDBsRequest: MessageFns<SyncDBsRequest>;
export declare const SyncDBsResponse: MessageFns<SyncDBsResponse>;
/**
 * NLPServer provides the interface for various NLP functionalities.
 * These functions include text processing, content management in projects,
 * and interaction with vectorized data structures.
 */
export type NLPServerService = typeof NLPServerService;
export declare const NLPServerService: {
    /**
     * Returns all available processing functions (models) of the server.
     * Each function includes a unique ID, a descriptive name,
     * a description, and a list of possible arguments.
     */
    readonly getFunctions: {
        readonly path: "/aristech.nlp.NLPServer/GetFunctions";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: FunctionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => FunctionRequest;
        readonly responseSerialize: (value: FunctionMessage) => Buffer;
        readonly responseDeserialize: (value: Buffer) => FunctionMessage;
    };
    /**
     * Processes the provided raw text using the specified functions.
     * Multiple functions can be applied sequentially.
     */
    readonly runFunctions: {
        readonly path: "/aristech.nlp.NLPServer/RunFunctions";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: RunFunctionsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => RunFunctionsRequest;
        readonly responseSerialize: (value: RunFunctionsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => RunFunctionsResponse;
    };
    /** Adds new content or updates existing content. */
    readonly updateContent: {
        readonly path: "/aristech.nlp.NLPServer/UpdateContent";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateContentRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateContentRequest;
        readonly responseSerialize: (value: UpdateContentResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => UpdateContentResponse;
    };
    /** Removes the specified content. */
    readonly removeContent: {
        readonly path: "/aristech.nlp.NLPServer/RemoveContent";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: RemoveContentRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => RemoveContentRequest;
        readonly responseSerialize: (value: RemoveContentResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => RemoveContentResponse;
    };
    /** Retrieves content that is available both as vectorized data and as plain text. */
    readonly getContent: {
        readonly path: "/aristech.nlp.NLPServer/GetContent";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: GetContentRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetContentRequest;
        readonly responseSerialize: (value: GetContentResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetContentResponse;
    };
    /** Initializes a new project. */
    readonly addProject: {
        readonly path: "/aristech.nlp.NLPServer/AddProject";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: AddProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => AddProjectRequest;
        readonly responseSerialize: (value: AddProjectResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => AddProjectResponse;
    };
    /** Removes an existing project and all associated content. */
    readonly removeProject: {
        readonly path: "/aristech.nlp.NLPServer/RemoveProject";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: RemoveProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => RemoveProjectRequest;
        readonly responseSerialize: (value: RemoveProjectResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => RemoveProjectResponse;
    };
    /** Updates the settings or configuration of an existing project. */
    readonly updateProject: {
        readonly path: "/aristech.nlp.NLPServer/UpdateProject";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateProjectRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateProjectRequest;
        readonly responseSerialize: (value: UpdateProjectResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => UpdateProjectResponse;
    };
    /** Returns a list of all projects. */
    readonly getProjects: {
        readonly path: "/aristech.nlp.NLPServer/GetProjects";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: GetProjectsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetProjectsRequest;
        readonly responseSerialize: (value: Project) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Project;
    };
    /** Retrieves all intents of a project. */
    readonly getIntents: {
        readonly path: "/aristech.nlp.NLPServer/GetIntents";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: GetIntentsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetIntentsRequest;
        readonly responseSerialize: (value: Intent) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Intent;
    };
    /** Determines score limits for a project based on test inputs. */
    readonly getScoreLimits: {
        readonly path: "/aristech.nlp.NLPServer/GetScoreLimits";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetScoreLimitsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetScoreLimitsRequest;
        readonly responseSerialize: (value: GetScoreLimitsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetScoreLimitsResponse;
    };
    /** Returns a list of available embedding models for similarity searches. */
    readonly getEmbeddingModels: {
        readonly path: "/aristech.nlp.NLPServer/GetEmbeddingModels";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: GetEmbeddingModelsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetEmbeddingModelsRequest;
        readonly responseSerialize: (value: EmbeddingModel) => Buffer;
        readonly responseDeserialize: (value: Buffer) => EmbeddingModel;
    };
    readonly syncDBs: {
        readonly path: "/aristech.nlp.NLPServer/SyncDBs";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: SyncDBsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => SyncDBsRequest;
        readonly responseSerialize: (value: SyncDBsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => SyncDBsResponse;
    };
    readonly getKeywords: {
        readonly path: "/aristech.nlp.NLPServer/GetKeywords";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: GetKeywordsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetKeywordsRequest;
        readonly responseSerialize: (value: GetKeywordsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetKeywordsResponse;
    };
    readonly addDocuments: {
        readonly path: "/aristech.nlp.NLPServer/AddDocuments";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: AddDocumentsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => AddDocumentsRequest;
        readonly responseSerialize: (value: AddDocumentsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => AddDocumentsResponse;
    };
    readonly getDocuments: {
        readonly path: "/aristech.nlp.NLPServer/GetDocuments";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetDocumentsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetDocumentsRequest;
        readonly responseSerialize: (value: GetDocumentsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetDocumentsResponse;
    };
    readonly processDocuments: {
        readonly path: "/aristech.nlp.NLPServer/ProcessDocuments";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ProcessDocumentsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ProcessDocumentsRequest;
        readonly responseSerialize: (value: ProcessDocumentsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ProcessDocumentsResponse;
    };
    readonly updateDocuments: {
        readonly path: "/aristech.nlp.NLPServer/UpdateDocuments";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateDocumentsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateDocumentsRequest;
        readonly responseSerialize: (value: UpdateDocumentsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => UpdateDocumentsResponse;
    };
    readonly removeDocuments: {
        readonly path: "/aristech.nlp.NLPServer/RemoveDocuments";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: RemoveDocumentsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => RemoveDocumentsRequest;
        readonly responseSerialize: (value: RemoveDocumentsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => RemoveDocumentsResponse;
    };
    readonly getDocumentStatus: {
        readonly path: "/aristech.nlp.NLPServer/GetDocumentStatus";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetDocumentStatusRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetDocumentStatusRequest;
        readonly responseSerialize: (value: GetDocumentStatusResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetDocumentStatusResponse;
    };
};
export interface NLPServerServer extends UntypedServiceImplementation {
    /**
     * Returns all available processing functions (models) of the server.
     * Each function includes a unique ID, a descriptive name,
     * a description, and a list of possible arguments.
     */
    getFunctions: handleServerStreamingCall<FunctionRequest, FunctionMessage>;
    /**
     * Processes the provided raw text using the specified functions.
     * Multiple functions can be applied sequentially.
     */
    runFunctions: handleUnaryCall<RunFunctionsRequest, RunFunctionsResponse>;
    /** Adds new content or updates existing content. */
    updateContent: handleUnaryCall<UpdateContentRequest, UpdateContentResponse>;
    /** Removes the specified content. */
    removeContent: handleUnaryCall<RemoveContentRequest, RemoveContentResponse>;
    /** Retrieves content that is available both as vectorized data and as plain text. */
    getContent: handleServerStreamingCall<GetContentRequest, GetContentResponse>;
    /** Initializes a new project. */
    addProject: handleUnaryCall<AddProjectRequest, AddProjectResponse>;
    /** Removes an existing project and all associated content. */
    removeProject: handleUnaryCall<RemoveProjectRequest, RemoveProjectResponse>;
    /** Updates the settings or configuration of an existing project. */
    updateProject: handleUnaryCall<UpdateProjectRequest, UpdateProjectResponse>;
    /** Returns a list of all projects. */
    getProjects: handleServerStreamingCall<GetProjectsRequest, Project>;
    /** Retrieves all intents of a project. */
    getIntents: handleServerStreamingCall<GetIntentsRequest, Intent>;
    /** Determines score limits for a project based on test inputs. */
    getScoreLimits: handleUnaryCall<GetScoreLimitsRequest, GetScoreLimitsResponse>;
    /** Returns a list of available embedding models for similarity searches. */
    getEmbeddingModels: handleServerStreamingCall<GetEmbeddingModelsRequest, EmbeddingModel>;
    syncDBs: handleUnaryCall<SyncDBsRequest, SyncDBsResponse>;
    getKeywords: handleServerStreamingCall<GetKeywordsRequest, GetKeywordsResponse>;
    addDocuments: handleUnaryCall<AddDocumentsRequest, AddDocumentsResponse>;
    getDocuments: handleUnaryCall<GetDocumentsRequest, GetDocumentsResponse>;
    processDocuments: handleUnaryCall<ProcessDocumentsRequest, ProcessDocumentsResponse>;
    updateDocuments: handleUnaryCall<UpdateDocumentsRequest, UpdateDocumentsResponse>;
    removeDocuments: handleUnaryCall<RemoveDocumentsRequest, RemoveDocumentsResponse>;
    getDocumentStatus: handleUnaryCall<GetDocumentStatusRequest, GetDocumentStatusResponse>;
}
export interface NLPServerClient extends Client {
    /**
     * Returns all available processing functions (models) of the server.
     * Each function includes a unique ID, a descriptive name,
     * a description, and a list of possible arguments.
     */
    getFunctions(request: FunctionRequest, options?: Partial<CallOptions>): ClientReadableStream<FunctionMessage>;
    getFunctions(request: FunctionRequest, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<FunctionMessage>;
    /**
     * Processes the provided raw text using the specified functions.
     * Multiple functions can be applied sequentially.
     */
    runFunctions(request: RunFunctionsRequest, callback: (error: ServiceError | null, response: RunFunctionsResponse) => void): ClientUnaryCall;
    runFunctions(request: RunFunctionsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: RunFunctionsResponse) => void): ClientUnaryCall;
    runFunctions(request: RunFunctionsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: RunFunctionsResponse) => void): ClientUnaryCall;
    /** Adds new content or updates existing content. */
    updateContent(request: UpdateContentRequest, callback: (error: ServiceError | null, response: UpdateContentResponse) => void): ClientUnaryCall;
    updateContent(request: UpdateContentRequest, metadata: Metadata, callback: (error: ServiceError | null, response: UpdateContentResponse) => void): ClientUnaryCall;
    updateContent(request: UpdateContentRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: UpdateContentResponse) => void): ClientUnaryCall;
    /** Removes the specified content. */
    removeContent(request: RemoveContentRequest, callback: (error: ServiceError | null, response: RemoveContentResponse) => void): ClientUnaryCall;
    removeContent(request: RemoveContentRequest, metadata: Metadata, callback: (error: ServiceError | null, response: RemoveContentResponse) => void): ClientUnaryCall;
    removeContent(request: RemoveContentRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: RemoveContentResponse) => void): ClientUnaryCall;
    /** Retrieves content that is available both as vectorized data and as plain text. */
    getContent(request: GetContentRequest, options?: Partial<CallOptions>): ClientReadableStream<GetContentResponse>;
    getContent(request: GetContentRequest, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<GetContentResponse>;
    /** Initializes a new project. */
    addProject(request: AddProjectRequest, callback: (error: ServiceError | null, response: AddProjectResponse) => void): ClientUnaryCall;
    addProject(request: AddProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: AddProjectResponse) => void): ClientUnaryCall;
    addProject(request: AddProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: AddProjectResponse) => void): ClientUnaryCall;
    /** Removes an existing project and all associated content. */
    removeProject(request: RemoveProjectRequest, callback: (error: ServiceError | null, response: RemoveProjectResponse) => void): ClientUnaryCall;
    removeProject(request: RemoveProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: RemoveProjectResponse) => void): ClientUnaryCall;
    removeProject(request: RemoveProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: RemoveProjectResponse) => void): ClientUnaryCall;
    /** Updates the settings or configuration of an existing project. */
    updateProject(request: UpdateProjectRequest, callback: (error: ServiceError | null, response: UpdateProjectResponse) => void): ClientUnaryCall;
    updateProject(request: UpdateProjectRequest, metadata: Metadata, callback: (error: ServiceError | null, response: UpdateProjectResponse) => void): ClientUnaryCall;
    updateProject(request: UpdateProjectRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: UpdateProjectResponse) => void): ClientUnaryCall;
    /** Returns a list of all projects. */
    getProjects(request: GetProjectsRequest, options?: Partial<CallOptions>): ClientReadableStream<Project>;
    getProjects(request: GetProjectsRequest, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<Project>;
    /** Retrieves all intents of a project. */
    getIntents(request: GetIntentsRequest, options?: Partial<CallOptions>): ClientReadableStream<Intent>;
    getIntents(request: GetIntentsRequest, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<Intent>;
    /** Determines score limits for a project based on test inputs. */
    getScoreLimits(request: GetScoreLimitsRequest, callback: (error: ServiceError | null, response: GetScoreLimitsResponse) => void): ClientUnaryCall;
    getScoreLimits(request: GetScoreLimitsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: GetScoreLimitsResponse) => void): ClientUnaryCall;
    getScoreLimits(request: GetScoreLimitsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetScoreLimitsResponse) => void): ClientUnaryCall;
    /** Returns a list of available embedding models for similarity searches. */
    getEmbeddingModels(request: GetEmbeddingModelsRequest, options?: Partial<CallOptions>): ClientReadableStream<EmbeddingModel>;
    getEmbeddingModels(request: GetEmbeddingModelsRequest, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<EmbeddingModel>;
    syncDBs(request: SyncDBsRequest, callback: (error: ServiceError | null, response: SyncDBsResponse) => void): ClientUnaryCall;
    syncDBs(request: SyncDBsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: SyncDBsResponse) => void): ClientUnaryCall;
    syncDBs(request: SyncDBsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: SyncDBsResponse) => void): ClientUnaryCall;
    getKeywords(request: GetKeywordsRequest, options?: Partial<CallOptions>): ClientReadableStream<GetKeywordsResponse>;
    getKeywords(request: GetKeywordsRequest, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<GetKeywordsResponse>;
    addDocuments(request: AddDocumentsRequest, callback: (error: ServiceError | null, response: AddDocumentsResponse) => void): ClientUnaryCall;
    addDocuments(request: AddDocumentsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: AddDocumentsResponse) => void): ClientUnaryCall;
    addDocuments(request: AddDocumentsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: AddDocumentsResponse) => void): ClientUnaryCall;
    getDocuments(request: GetDocumentsRequest, callback: (error: ServiceError | null, response: GetDocumentsResponse) => void): ClientUnaryCall;
    getDocuments(request: GetDocumentsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: GetDocumentsResponse) => void): ClientUnaryCall;
    getDocuments(request: GetDocumentsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetDocumentsResponse) => void): ClientUnaryCall;
    processDocuments(request: ProcessDocumentsRequest, callback: (error: ServiceError | null, response: ProcessDocumentsResponse) => void): ClientUnaryCall;
    processDocuments(request: ProcessDocumentsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ProcessDocumentsResponse) => void): ClientUnaryCall;
    processDocuments(request: ProcessDocumentsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ProcessDocumentsResponse) => void): ClientUnaryCall;
    updateDocuments(request: UpdateDocumentsRequest, callback: (error: ServiceError | null, response: UpdateDocumentsResponse) => void): ClientUnaryCall;
    updateDocuments(request: UpdateDocumentsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: UpdateDocumentsResponse) => void): ClientUnaryCall;
    updateDocuments(request: UpdateDocumentsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: UpdateDocumentsResponse) => void): ClientUnaryCall;
    removeDocuments(request: RemoveDocumentsRequest, callback: (error: ServiceError | null, response: RemoveDocumentsResponse) => void): ClientUnaryCall;
    removeDocuments(request: RemoveDocumentsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: RemoveDocumentsResponse) => void): ClientUnaryCall;
    removeDocuments(request: RemoveDocumentsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: RemoveDocumentsResponse) => void): ClientUnaryCall;
    getDocumentStatus(request: GetDocumentStatusRequest, callback: (error: ServiceError | null, response: GetDocumentStatusResponse) => void): ClientUnaryCall;
    getDocumentStatus(request: GetDocumentStatusRequest, metadata: Metadata, callback: (error: ServiceError | null, response: GetDocumentStatusResponse) => void): ClientUnaryCall;
    getDocumentStatus(request: GetDocumentStatusRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetDocumentStatusResponse) => void): ClientUnaryCall;
}
export declare const NLPServerClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ClientOptions>): NLPServerClient;
    service: typeof NLPServerService;
    serviceName: string;
};
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>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export interface MessageFns<T> {
    encode(message: T, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): T;
    fromJSON(object: any): T;
    toJSON(message: T): unknown;
    create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
    fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}
export {};
