/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { ExpirationConfig } from '../../../../../../yandex/cloud/ai/common/common';
import { FieldMask } from '../../../../../../google/protobuf/field_mask';
import { TextSearchIndex, VectorSearchIndex, HybridSearchIndex, SearchIndex } from '../../../../../../yandex/cloud/ai/assistants/v1/searchindex/search_index';
import { Operation } from '../../../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.ai.assistants.v1.searchindex";
/** Request to create a new search index. */
export interface CreateSearchIndexRequest {
    folderId: string;
    /** List of file IDs to be indexed. */
    fileIds: string[];
    /** Name of the search index. */
    name: string;
    /** Description of the search index. */
    description: string;
    /** Expiration configuration for the search index. */
    expirationConfig?: ExpirationConfig;
    /** Set of key-value pairs to label the search index. */
    labels: {
        [key: string]: string;
    };
    /** Configuration for a traditional keyword-based text search index. */
    textSearchIndex?: TextSearchIndex | undefined;
    /** Configuration for a vector-based search index using embeddings. */
    vectorSearchIndex?: VectorSearchIndex | undefined;
    /** Configuration for a hybrid (vector-based + keyword-based) search index. */
    hybridSearchIndex?: HybridSearchIndex | undefined;
}
export interface CreateSearchIndexRequest_LabelsEntry {
    key: string;
    value: string;
}
/** Request message for retrieving a search index by ID. */
export interface GetSearchIndexRequest {
    /** ID of the search index to retrieve. */
    searchIndexId: string;
}
/** Request message for updating an existing search index. */
export interface UpdateSearchIndexRequest {
    /** ID of the search index to update. */
    searchIndexId: string;
    /** Field mask specifying which fields to update. */
    updateMask?: FieldMask;
    /** New name for the search index. */
    name: string;
    /** New description for the search index. */
    description: string;
    /** New expiration configuration for the search index. */
    expirationConfig?: ExpirationConfig;
    /** New set of labels for the search index. */
    labels: {
        [key: string]: string;
    };
}
export interface UpdateSearchIndexRequest_LabelsEntry {
    key: string;
    value: string;
}
/** Request message for deleting a search index by ID. */
export interface DeleteSearchIndexRequest {
    /** ID of the search index to delete. */
    searchIndexId: string;
}
/** Response message for the delete operation. */
export interface DeleteSearchIndexResponse {
}
/** Request message for listing search indexes in a specific folder. */
export interface ListSearchIndicesRequest {
    /** Folder ID from which to list search indexes. */
    folderId: string;
    /** Maximum number of threads to return per page. */
    pageSize: number;
    /** Token to retrieve the next page of results. */
    pageToken: string;
}
/** Response message for the list operation. */
export interface ListSearchIndicesResponse {
    /** List of search indexes in the specified folder. */
    indices: SearchIndex[];
    /** Token to retrieve the next page of results. */
    nextPageToken: string;
}
export declare const CreateSearchIndexRequest: {
    encode(message: CreateSearchIndexRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateSearchIndexRequest;
    fromJSON(object: any): CreateSearchIndexRequest;
    toJSON(message: CreateSearchIndexRequest): unknown;
    fromPartial<I extends {
        folderId?: string | undefined;
        fileIds?: string[] | undefined;
        name?: string | undefined;
        description?: string | undefined;
        expirationConfig?: {
            expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
            ttlDays?: number | undefined;
        } | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        textSearchIndex?: {
            chunkingStrategy?: {
                staticStrategy?: {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } | undefined;
            } | undefined;
            ngramTokenizer?: {
                minGram?: number | undefined;
                maxGram?: number | undefined;
            } | undefined;
        } | undefined;
        vectorSearchIndex?: {
            docEmbedderUri?: string | undefined;
            queryEmbedderUri?: string | undefined;
            chunkingStrategy?: {
                staticStrategy?: {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        hybridSearchIndex?: {
            textSearchIndex?: {
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                ngramTokenizer?: {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } | undefined;
            } | undefined;
            vectorSearchIndex?: {
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            chunkingStrategy?: {
                staticStrategy?: {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } | undefined;
            } | undefined;
            normalizationStrategy?: import("./common").NormalizationStrategy | undefined;
            combinationStrategy?: {
                meanCombination?: {
                    meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                    weights?: number[] | undefined;
                } | undefined;
                rrfCombination?: {
                    k?: number | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
    } & {
        folderId?: string | undefined;
        fileIds?: (string[] & string[] & Record<Exclude<keyof I["fileIds"], keyof string[]>, never>) | undefined;
        name?: string | undefined;
        description?: string | undefined;
        expirationConfig?: ({
            expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
            ttlDays?: number | undefined;
        } & {
            expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
            ttlDays?: number | undefined;
        } & Record<Exclude<keyof I["expirationConfig"], keyof ExpirationConfig>, never>) | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        textSearchIndex?: ({
            chunkingStrategy?: {
                staticStrategy?: {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } | undefined;
            } | undefined;
            ngramTokenizer?: {
                minGram?: number | undefined;
                maxGram?: number | undefined;
            } | undefined;
        } & {
            chunkingStrategy?: ({
                staticStrategy?: {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } | undefined;
            } & {
                staticStrategy?: ({
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } & {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } & Record<Exclude<keyof I["textSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
            } & Record<Exclude<keyof I["textSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
            ngramTokenizer?: ({
                minGram?: number | undefined;
                maxGram?: number | undefined;
            } & {
                minGram?: number | undefined;
                maxGram?: number | undefined;
            } & Record<Exclude<keyof I["textSearchIndex"]["ngramTokenizer"], keyof import("./common").NgramTokenizer>, never>) | undefined;
        } & Record<Exclude<keyof I["textSearchIndex"], keyof TextSearchIndex>, never>) | undefined;
        vectorSearchIndex?: ({
            docEmbedderUri?: string | undefined;
            queryEmbedderUri?: string | undefined;
            chunkingStrategy?: {
                staticStrategy?: {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } | undefined;
            } | undefined;
        } & {
            docEmbedderUri?: string | undefined;
            queryEmbedderUri?: string | undefined;
            chunkingStrategy?: ({
                staticStrategy?: {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } | undefined;
            } & {
                staticStrategy?: ({
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } & {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } & Record<Exclude<keyof I["vectorSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
            } & Record<Exclude<keyof I["vectorSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
        } & Record<Exclude<keyof I["vectorSearchIndex"], keyof VectorSearchIndex>, never>) | undefined;
        hybridSearchIndex?: ({
            textSearchIndex?: {
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                ngramTokenizer?: {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } | undefined;
            } | undefined;
            vectorSearchIndex?: {
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            chunkingStrategy?: {
                staticStrategy?: {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } | undefined;
            } | undefined;
            normalizationStrategy?: import("./common").NormalizationStrategy | undefined;
            combinationStrategy?: {
                meanCombination?: {
                    meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                    weights?: number[] | undefined;
                } | undefined;
                rrfCombination?: {
                    k?: number | undefined;
                } | undefined;
            } | undefined;
        } & {
            textSearchIndex?: ({
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                ngramTokenizer?: {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } | undefined;
            } & {
                chunkingStrategy?: ({
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } & {
                    staticStrategy?: ({
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & Record<Exclude<keyof I["hybridSearchIndex"]["textSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
                } & Record<Exclude<keyof I["hybridSearchIndex"]["textSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
                ngramTokenizer?: ({
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } & {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } & Record<Exclude<keyof I["hybridSearchIndex"]["textSearchIndex"]["ngramTokenizer"], keyof import("./common").NgramTokenizer>, never>) | undefined;
            } & Record<Exclude<keyof I["hybridSearchIndex"]["textSearchIndex"], keyof TextSearchIndex>, never>) | undefined;
            vectorSearchIndex?: ({
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
            } & {
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: ({
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } & {
                    staticStrategy?: ({
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & Record<Exclude<keyof I["hybridSearchIndex"]["vectorSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
                } & Record<Exclude<keyof I["hybridSearchIndex"]["vectorSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
            } & Record<Exclude<keyof I["hybridSearchIndex"]["vectorSearchIndex"], keyof VectorSearchIndex>, never>) | undefined;
            chunkingStrategy?: ({
                staticStrategy?: {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } | undefined;
            } & {
                staticStrategy?: ({
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } & {
                    maxChunkSizeTokens?: number | undefined;
                    chunkOverlapTokens?: number | undefined;
                } & Record<Exclude<keyof I["hybridSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
            } & Record<Exclude<keyof I["hybridSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
            normalizationStrategy?: import("./common").NormalizationStrategy | undefined;
            combinationStrategy?: ({
                meanCombination?: {
                    meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                    weights?: number[] | undefined;
                } | undefined;
                rrfCombination?: {
                    k?: number | undefined;
                } | undefined;
            } & {
                meanCombination?: ({
                    meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                    weights?: number[] | undefined;
                } & {
                    meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                    weights?: (number[] & number[] & Record<Exclude<keyof I["hybridSearchIndex"]["combinationStrategy"]["meanCombination"]["weights"], keyof number[]>, never>) | undefined;
                } & Record<Exclude<keyof I["hybridSearchIndex"]["combinationStrategy"]["meanCombination"], keyof import("./common").MeanCombinationStrategy>, never>) | undefined;
                rrfCombination?: ({
                    k?: number | undefined;
                } & {
                    k?: number | undefined;
                } & Record<Exclude<keyof I["hybridSearchIndex"]["combinationStrategy"]["rrfCombination"], "k">, never>) | undefined;
            } & Record<Exclude<keyof I["hybridSearchIndex"]["combinationStrategy"], keyof import("./common").CombinationStrategy>, never>) | undefined;
        } & Record<Exclude<keyof I["hybridSearchIndex"], keyof HybridSearchIndex>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreateSearchIndexRequest>, never>>(object: I): CreateSearchIndexRequest;
};
export declare const CreateSearchIndexRequest_LabelsEntry: {
    encode(message: CreateSearchIndexRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateSearchIndexRequest_LabelsEntry;
    fromJSON(object: any): CreateSearchIndexRequest_LabelsEntry;
    toJSON(message: CreateSearchIndexRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateSearchIndexRequest_LabelsEntry>, never>>(object: I): CreateSearchIndexRequest_LabelsEntry;
};
export declare const GetSearchIndexRequest: {
    encode(message: GetSearchIndexRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetSearchIndexRequest;
    fromJSON(object: any): GetSearchIndexRequest;
    toJSON(message: GetSearchIndexRequest): unknown;
    fromPartial<I extends {
        searchIndexId?: string | undefined;
    } & {
        searchIndexId?: string | undefined;
    } & Record<Exclude<keyof I, "searchIndexId">, never>>(object: I): GetSearchIndexRequest;
};
export declare const UpdateSearchIndexRequest: {
    encode(message: UpdateSearchIndexRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSearchIndexRequest;
    fromJSON(object: any): UpdateSearchIndexRequest;
    toJSON(message: UpdateSearchIndexRequest): unknown;
    fromPartial<I extends {
        searchIndexId?: string | undefined;
        updateMask?: {
            paths?: string[] | undefined;
        } | undefined;
        name?: string | undefined;
        description?: string | undefined;
        expirationConfig?: {
            expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
            ttlDays?: number | undefined;
        } | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
    } & {
        searchIndexId?: string | undefined;
        updateMask?: ({
            paths?: string[] | undefined;
        } & {
            paths?: (string[] & string[] & Record<Exclude<keyof I["updateMask"]["paths"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["updateMask"], "paths">, never>) | undefined;
        name?: string | undefined;
        description?: string | undefined;
        expirationConfig?: ({
            expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
            ttlDays?: number | undefined;
        } & {
            expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
            ttlDays?: number | undefined;
        } & Record<Exclude<keyof I["expirationConfig"], keyof ExpirationConfig>, never>) | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof UpdateSearchIndexRequest>, never>>(object: I): UpdateSearchIndexRequest;
};
export declare const UpdateSearchIndexRequest_LabelsEntry: {
    encode(message: UpdateSearchIndexRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSearchIndexRequest_LabelsEntry;
    fromJSON(object: any): UpdateSearchIndexRequest_LabelsEntry;
    toJSON(message: UpdateSearchIndexRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateSearchIndexRequest_LabelsEntry>, never>>(object: I): UpdateSearchIndexRequest_LabelsEntry;
};
export declare const DeleteSearchIndexRequest: {
    encode(message: DeleteSearchIndexRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteSearchIndexRequest;
    fromJSON(object: any): DeleteSearchIndexRequest;
    toJSON(message: DeleteSearchIndexRequest): unknown;
    fromPartial<I extends {
        searchIndexId?: string | undefined;
    } & {
        searchIndexId?: string | undefined;
    } & Record<Exclude<keyof I, "searchIndexId">, never>>(object: I): DeleteSearchIndexRequest;
};
export declare const DeleteSearchIndexResponse: {
    encode(_: DeleteSearchIndexResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteSearchIndexResponse;
    fromJSON(_: any): DeleteSearchIndexResponse;
    toJSON(_: DeleteSearchIndexResponse): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): DeleteSearchIndexResponse;
};
export declare const ListSearchIndicesRequest: {
    encode(message: ListSearchIndicesRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListSearchIndicesRequest;
    fromJSON(object: any): ListSearchIndicesRequest;
    toJSON(message: ListSearchIndicesRequest): unknown;
    fromPartial<I extends {
        folderId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & {
        folderId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListSearchIndicesRequest>, never>>(object: I): ListSearchIndicesRequest;
};
export declare const ListSearchIndicesResponse: {
    encode(message: ListSearchIndicesResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListSearchIndicesResponse;
    fromJSON(object: any): ListSearchIndicesResponse;
    toJSON(message: ListSearchIndicesResponse): unknown;
    fromPartial<I extends {
        indices?: {
            id?: string | undefined;
            folderId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdBy?: string | undefined;
            createdAt?: Date | undefined;
            updatedBy?: string | undefined;
            updatedAt?: Date | undefined;
            expirationConfig?: {
                expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
                ttlDays?: number | undefined;
            } | undefined;
            expiresAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            textSearchIndex?: {
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                ngramTokenizer?: {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } | undefined;
            } | undefined;
            vectorSearchIndex?: {
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            hybridSearchIndex?: {
                textSearchIndex?: {
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                    ngramTokenizer?: {
                        minGram?: number | undefined;
                        maxGram?: number | undefined;
                    } | undefined;
                } | undefined;
                vectorSearchIndex?: {
                    docEmbedderUri?: string | undefined;
                    queryEmbedderUri?: string | undefined;
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                normalizationStrategy?: import("./common").NormalizationStrategy | undefined;
                combinationStrategy?: {
                    meanCombination?: {
                        meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                        weights?: number[] | undefined;
                    } | undefined;
                    rrfCombination?: {
                        k?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        indices?: ({
            id?: string | undefined;
            folderId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdBy?: string | undefined;
            createdAt?: Date | undefined;
            updatedBy?: string | undefined;
            updatedAt?: Date | undefined;
            expirationConfig?: {
                expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
                ttlDays?: number | undefined;
            } | undefined;
            expiresAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            textSearchIndex?: {
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                ngramTokenizer?: {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } | undefined;
            } | undefined;
            vectorSearchIndex?: {
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            hybridSearchIndex?: {
                textSearchIndex?: {
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                    ngramTokenizer?: {
                        minGram?: number | undefined;
                        maxGram?: number | undefined;
                    } | undefined;
                } | undefined;
                vectorSearchIndex?: {
                    docEmbedderUri?: string | undefined;
                    queryEmbedderUri?: string | undefined;
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                normalizationStrategy?: import("./common").NormalizationStrategy | undefined;
                combinationStrategy?: {
                    meanCombination?: {
                        meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                        weights?: number[] | undefined;
                    } | undefined;
                    rrfCombination?: {
                        k?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            folderId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdBy?: string | undefined;
            createdAt?: Date | undefined;
            updatedBy?: string | undefined;
            updatedAt?: Date | undefined;
            expirationConfig?: {
                expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
                ttlDays?: number | undefined;
            } | undefined;
            expiresAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            textSearchIndex?: {
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                ngramTokenizer?: {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } | undefined;
            } | undefined;
            vectorSearchIndex?: {
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            hybridSearchIndex?: {
                textSearchIndex?: {
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                    ngramTokenizer?: {
                        minGram?: number | undefined;
                        maxGram?: number | undefined;
                    } | undefined;
                } | undefined;
                vectorSearchIndex?: {
                    docEmbedderUri?: string | undefined;
                    queryEmbedderUri?: string | undefined;
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                normalizationStrategy?: import("./common").NormalizationStrategy | undefined;
                combinationStrategy?: {
                    meanCombination?: {
                        meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                        weights?: number[] | undefined;
                    } | undefined;
                    rrfCombination?: {
                        k?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            folderId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdBy?: string | undefined;
            createdAt?: Date | undefined;
            updatedBy?: string | undefined;
            updatedAt?: Date | undefined;
            expirationConfig?: ({
                expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
                ttlDays?: number | undefined;
            } & {
                expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
                ttlDays?: number | undefined;
            } & Record<Exclude<keyof I["indices"][number]["expirationConfig"], keyof ExpirationConfig>, never>) | undefined;
            expiresAt?: Date | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["indices"][number]["labels"], string | number>, never>) | undefined;
            textSearchIndex?: ({
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                ngramTokenizer?: {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } | undefined;
            } & {
                chunkingStrategy?: ({
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } & {
                    staticStrategy?: ({
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & Record<Exclude<keyof I["indices"][number]["textSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
                } & Record<Exclude<keyof I["indices"][number]["textSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
                ngramTokenizer?: ({
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } & {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } & Record<Exclude<keyof I["indices"][number]["textSearchIndex"]["ngramTokenizer"], keyof import("./common").NgramTokenizer>, never>) | undefined;
            } & Record<Exclude<keyof I["indices"][number]["textSearchIndex"], keyof TextSearchIndex>, never>) | undefined;
            vectorSearchIndex?: ({
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
            } & {
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: ({
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } & {
                    staticStrategy?: ({
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & Record<Exclude<keyof I["indices"][number]["vectorSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
                } & Record<Exclude<keyof I["indices"][number]["vectorSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
            } & Record<Exclude<keyof I["indices"][number]["vectorSearchIndex"], keyof VectorSearchIndex>, never>) | undefined;
            hybridSearchIndex?: ({
                textSearchIndex?: {
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                    ngramTokenizer?: {
                        minGram?: number | undefined;
                        maxGram?: number | undefined;
                    } | undefined;
                } | undefined;
                vectorSearchIndex?: {
                    docEmbedderUri?: string | undefined;
                    queryEmbedderUri?: string | undefined;
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                normalizationStrategy?: import("./common").NormalizationStrategy | undefined;
                combinationStrategy?: {
                    meanCombination?: {
                        meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                        weights?: number[] | undefined;
                    } | undefined;
                    rrfCombination?: {
                        k?: number | undefined;
                    } | undefined;
                } | undefined;
            } & {
                textSearchIndex?: ({
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                    ngramTokenizer?: {
                        minGram?: number | undefined;
                        maxGram?: number | undefined;
                    } | undefined;
                } & {
                    chunkingStrategy?: ({
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } & {
                        staticStrategy?: ({
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } & {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["textSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
                    } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["textSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
                    ngramTokenizer?: ({
                        minGram?: number | undefined;
                        maxGram?: number | undefined;
                    } & {
                        minGram?: number | undefined;
                        maxGram?: number | undefined;
                    } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["textSearchIndex"]["ngramTokenizer"], keyof import("./common").NgramTokenizer>, never>) | undefined;
                } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["textSearchIndex"], keyof TextSearchIndex>, never>) | undefined;
                vectorSearchIndex?: ({
                    docEmbedderUri?: string | undefined;
                    queryEmbedderUri?: string | undefined;
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                } & {
                    docEmbedderUri?: string | undefined;
                    queryEmbedderUri?: string | undefined;
                    chunkingStrategy?: ({
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } & {
                        staticStrategy?: ({
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } & {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["vectorSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
                    } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["vectorSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
                } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["vectorSearchIndex"], keyof VectorSearchIndex>, never>) | undefined;
                chunkingStrategy?: ({
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } & {
                    staticStrategy?: ({
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["chunkingStrategy"]["staticStrategy"], keyof import("./common").StaticChunkingStrategy>, never>) | undefined;
                } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["chunkingStrategy"], "staticStrategy">, never>) | undefined;
                normalizationStrategy?: import("./common").NormalizationStrategy | undefined;
                combinationStrategy?: ({
                    meanCombination?: {
                        meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                        weights?: number[] | undefined;
                    } | undefined;
                    rrfCombination?: {
                        k?: number | undefined;
                    } | undefined;
                } & {
                    meanCombination?: ({
                        meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                        weights?: number[] | undefined;
                    } & {
                        meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                        weights?: (number[] & number[] & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["combinationStrategy"]["meanCombination"]["weights"], keyof number[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["combinationStrategy"]["meanCombination"], keyof import("./common").MeanCombinationStrategy>, never>) | undefined;
                    rrfCombination?: ({
                        k?: number | undefined;
                    } & {
                        k?: number | undefined;
                    } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["combinationStrategy"]["rrfCombination"], "k">, never>) | undefined;
                } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"]["combinationStrategy"], keyof import("./common").CombinationStrategy>, never>) | undefined;
            } & Record<Exclude<keyof I["indices"][number]["hybridSearchIndex"], keyof HybridSearchIndex>, never>) | undefined;
        } & Record<Exclude<keyof I["indices"][number], keyof SearchIndex>, never>)[] & Record<Exclude<keyof I["indices"], keyof {
            id?: string | undefined;
            folderId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdBy?: string | undefined;
            createdAt?: Date | undefined;
            updatedBy?: string | undefined;
            updatedAt?: Date | undefined;
            expirationConfig?: {
                expirationPolicy?: import("../../../../../../yandex/cloud/ai/common/common").ExpirationConfig_ExpirationPolicy | undefined;
                ttlDays?: number | undefined;
            } | undefined;
            expiresAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            textSearchIndex?: {
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                ngramTokenizer?: {
                    minGram?: number | undefined;
                    maxGram?: number | undefined;
                } | undefined;
            } | undefined;
            vectorSearchIndex?: {
                docEmbedderUri?: string | undefined;
                queryEmbedderUri?: string | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            hybridSearchIndex?: {
                textSearchIndex?: {
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                    ngramTokenizer?: {
                        minGram?: number | undefined;
                        maxGram?: number | undefined;
                    } | undefined;
                } | undefined;
                vectorSearchIndex?: {
                    docEmbedderUri?: string | undefined;
                    queryEmbedderUri?: string | undefined;
                    chunkingStrategy?: {
                        staticStrategy?: {
                            maxChunkSizeTokens?: number | undefined;
                            chunkOverlapTokens?: number | undefined;
                        } | undefined;
                    } | undefined;
                } | undefined;
                chunkingStrategy?: {
                    staticStrategy?: {
                        maxChunkSizeTokens?: number | undefined;
                        chunkOverlapTokens?: number | undefined;
                    } | undefined;
                } | undefined;
                normalizationStrategy?: import("./common").NormalizationStrategy | undefined;
                combinationStrategy?: {
                    meanCombination?: {
                        meanEvaluationTechnique?: import("./common").MeanCombinationStrategy_MeanEvaluationTechnique | undefined;
                        weights?: number[] | undefined;
                    } | undefined;
                    rrfCombination?: {
                        k?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListSearchIndicesResponse>, never>>(object: I): ListSearchIndicesResponse;
};
/** SearchIndexService provides operations for managing search indexes. */
export declare const SearchIndexServiceService: {
    /** Create a new search index in [asynchronous mode](/docs/foundation-models/concepts/#working-mode). */
    readonly create: {
        readonly path: "/yandex.cloud.ai.assistants.v1.searchindex.SearchIndexService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreateSearchIndexRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreateSearchIndexRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Retrieve details of a specific search index by its ID. */
    readonly get: {
        readonly path: "/yandex.cloud.ai.assistants.v1.searchindex.SearchIndexService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetSearchIndexRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetSearchIndexRequest;
        readonly responseSerialize: (value: SearchIndex) => Buffer;
        readonly responseDeserialize: (value: Buffer) => SearchIndex;
    };
    /** Update an existing search index. */
    readonly update: {
        readonly path: "/yandex.cloud.ai.assistants.v1.searchindex.SearchIndexService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateSearchIndexRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateSearchIndexRequest;
        readonly responseSerialize: (value: SearchIndex) => Buffer;
        readonly responseDeserialize: (value: Buffer) => SearchIndex;
    };
    /** Delete a search index by its ID. */
    readonly delete: {
        readonly path: "/yandex.cloud.ai.assistants.v1.searchindex.SearchIndexService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteSearchIndexRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteSearchIndexRequest;
        readonly responseSerialize: (value: DeleteSearchIndexResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => DeleteSearchIndexResponse;
    };
    /** List search indexes in a specific folder. */
    readonly list: {
        readonly path: "/yandex.cloud.ai.assistants.v1.searchindex.SearchIndexService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListSearchIndicesRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListSearchIndicesRequest;
        readonly responseSerialize: (value: ListSearchIndicesResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListSearchIndicesResponse;
    };
};
export interface SearchIndexServiceServer extends UntypedServiceImplementation {
    /** Create a new search index in [asynchronous mode](/docs/foundation-models/concepts/#working-mode). */
    create: handleUnaryCall<CreateSearchIndexRequest, Operation>;
    /** Retrieve details of a specific search index by its ID. */
    get: handleUnaryCall<GetSearchIndexRequest, SearchIndex>;
    /** Update an existing search index. */
    update: handleUnaryCall<UpdateSearchIndexRequest, SearchIndex>;
    /** Delete a search index by its ID. */
    delete: handleUnaryCall<DeleteSearchIndexRequest, DeleteSearchIndexResponse>;
    /** List search indexes in a specific folder. */
    list: handleUnaryCall<ListSearchIndicesRequest, ListSearchIndicesResponse>;
}
export interface SearchIndexServiceClient extends Client {
    /** Create a new search index in [asynchronous mode](/docs/foundation-models/concepts/#working-mode). */
    create(request: CreateSearchIndexRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateSearchIndexRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateSearchIndexRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Retrieve details of a specific search index by its ID. */
    get(request: GetSearchIndexRequest, callback: (error: ServiceError | null, response: SearchIndex) => void): ClientUnaryCall;
    get(request: GetSearchIndexRequest, metadata: Metadata, callback: (error: ServiceError | null, response: SearchIndex) => void): ClientUnaryCall;
    get(request: GetSearchIndexRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: SearchIndex) => void): ClientUnaryCall;
    /** Update an existing search index. */
    update(request: UpdateSearchIndexRequest, callback: (error: ServiceError | null, response: SearchIndex) => void): ClientUnaryCall;
    update(request: UpdateSearchIndexRequest, metadata: Metadata, callback: (error: ServiceError | null, response: SearchIndex) => void): ClientUnaryCall;
    update(request: UpdateSearchIndexRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: SearchIndex) => void): ClientUnaryCall;
    /** Delete a search index by its ID. */
    delete(request: DeleteSearchIndexRequest, callback: (error: ServiceError | null, response: DeleteSearchIndexResponse) => void): ClientUnaryCall;
    delete(request: DeleteSearchIndexRequest, metadata: Metadata, callback: (error: ServiceError | null, response: DeleteSearchIndexResponse) => void): ClientUnaryCall;
    delete(request: DeleteSearchIndexRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: DeleteSearchIndexResponse) => void): ClientUnaryCall;
    /** List search indexes in a specific folder. */
    list(request: ListSearchIndicesRequest, callback: (error: ServiceError | null, response: ListSearchIndicesResponse) => void): ClientUnaryCall;
    list(request: ListSearchIndicesRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListSearchIndicesResponse) => void): ClientUnaryCall;
    list(request: ListSearchIndicesRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListSearchIndicesResponse) => void): ClientUnaryCall;
}
export declare const SearchIndexServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): SearchIndexServiceClient;
    service: typeof SearchIndexServiceService;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? 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]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
