/// <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 { PromptTruncationOptions, CompletionOptions, Tool } from '../../../../../yandex/cloud/ai/assistants/v1/common';
import { FieldMask } from '../../../../../google/protobuf/field_mask';
import { Assistant } from '../../../../../yandex/cloud/ai/assistants/v1/assistant';
export declare const protobufPackage = "yandex.cloud.ai.assistants.v1";
/** Request to create a new assistant. */
export interface CreateAssistantRequest {
    folderId: string;
    /** Name of the assistant. */
    name: string;
    /** Description of the assistant. */
    description: string;
    /** Expiration configuration for the assistant. */
    expirationConfig?: ExpirationConfig;
    /** Set of key-value pairs to label the user. */
    labels: {
        [key: string]: string;
    };
    /** The [ID of the model](/docs/foundation-models/concepts/yandexgpt/models) to be used for completion generation. */
    modelUri: string;
    /**
     * Instructions or guidelines that the assistant should follow when generating responses or performing tasks.
     * These instructions can help guide the assistant's behavior and responses.
     */
    instruction: string;
    /** Configuration options for truncating the prompt when the token count exceeds a specified limit. */
    promptTruncationOptions?: PromptTruncationOptions;
    /** Configuration options for completion generation. */
    completionOptions?: CompletionOptions;
    /**
     * List of tools that the assistant can use to perform additional tasks.
     * One example is the SearchIndexTool, which is used for Retrieval-Augmented Generation (RAG).
     */
    tools: Tool[];
}
export interface CreateAssistantRequest_LabelsEntry {
    key: string;
    value: string;
}
/** Request message for retrieving an assistant by ID. */
export interface GetAssistantRequest {
    /** ID of the assistant to retrieve. */
    assistantId: string;
}
/** Request message for updating an existing assistant. */
export interface UpdateAssistantRequest {
    /** ID of the assistant to update. */
    assistantId: string;
    /** Field mask specifying which fields to update. */
    updateMask?: FieldMask;
    /** New name for the assistant. */
    name: string;
    /** New description for the assistant. */
    description: string;
    /** New expiration configuration for the assistant. */
    expirationConfig?: ExpirationConfig;
    /** New set of labels for the assistant. */
    labels: {
        [key: string]: string;
    };
    /** The new [ID of the model](/docs/foundation-models/concepts/yandexgpt/models) to be used for completion generation. */
    modelUri: string;
    /** New instructions or guidelines for the assistant to follow. */
    instruction: string;
    /** New configuration for truncating the prompt. */
    promptTruncationOptions?: PromptTruncationOptions;
    /** New configuration for completion generation. */
    completionOptions?: CompletionOptions;
    /** New list of tools the assistant can use. */
    tools: Tool[];
}
export interface UpdateAssistantRequest_LabelsEntry {
    key: string;
    value: string;
}
/** Request message for deleting an assistant by ID. */
export interface DeleteAssistantRequest {
    /** ID of the assistant to delete. */
    assistantId: string;
}
/** Response message for the delete operation. */
export interface DeleteAssistantResponse {
}
/** Request message for listing assistants in a specific folder. */
export interface ListAssistantsRequest {
    /** Folder ID from which to list assistants. */
    folderId: string;
    /** Maximum number of assistants to return per page. */
    pageSize: number;
    /** Token to retrieve the next page of results. */
    pageToken: string;
}
/** Response message for the list operation. */
export interface ListAssistantsResponse {
    /** List of assistants in the specified folder. */
    assistants: Assistant[];
    /** Token to retrieve the next page of results. */
    nextPageToken: string;
}
/** Request to list all versions of a specific assistant. */
export interface ListAssistantVersionsRequest {
    /** ID of the assistant whose versions are to be listed. */
    assistantId: string;
    /** Maximum number of versions to return per page. */
    pageSize: number;
    /** Token to retrieve the next page of results. */
    pageToken: string;
}
/** Represents a specific version of an assistant. */
export interface AssistantVersion {
    /** ID of the assistant version. */
    id: string;
    /** Mask specifying which fields were updated in this version. */
    updateMask?: FieldMask;
    /** Assistant configuration for this version. */
    assistant?: Assistant;
}
/** Response message containing the list versions operation. */
export interface ListAssistantVersionsResponse {
    /** List of assistant versions. */
    versions: AssistantVersion[];
    /** Token to retrieve the next page of results. */
    nextPageToken: string;
}
export declare const CreateAssistantRequest: {
    encode(message: CreateAssistantRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateAssistantRequest;
    fromJSON(object: any): CreateAssistantRequest;
    toJSON(message: CreateAssistantRequest): unknown;
    fromPartial<I extends {
        folderId?: 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;
        modelUri?: string | undefined;
        instruction?: string | undefined;
        promptTruncationOptions?: {
            maxPromptTokens?: number | undefined;
            autoStrategy?: {} | undefined;
            lastMessagesStrategy?: {
                numMessages?: number | undefined;
            } | undefined;
        } | undefined;
        completionOptions?: {
            maxTokens?: number | undefined;
            temperature?: number | undefined;
        } | undefined;
        tools?: {
            searchIndex?: {
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } | undefined;
            function?: {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } | undefined;
        }[] | undefined;
    } & {
        folderId?: string | 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;
        modelUri?: string | undefined;
        instruction?: string | undefined;
        promptTruncationOptions?: ({
            maxPromptTokens?: number | undefined;
            autoStrategy?: {} | undefined;
            lastMessagesStrategy?: {
                numMessages?: number | undefined;
            } | undefined;
        } & {
            maxPromptTokens?: number | undefined;
            autoStrategy?: ({} & {} & Record<Exclude<keyof I["promptTruncationOptions"]["autoStrategy"], never>, never>) | undefined;
            lastMessagesStrategy?: ({
                numMessages?: number | undefined;
            } & {
                numMessages?: number | undefined;
            } & Record<Exclude<keyof I["promptTruncationOptions"]["lastMessagesStrategy"], "numMessages">, never>) | undefined;
        } & Record<Exclude<keyof I["promptTruncationOptions"], keyof PromptTruncationOptions>, never>) | undefined;
        completionOptions?: ({
            maxTokens?: number | undefined;
            temperature?: number | undefined;
        } & {
            maxTokens?: number | undefined;
            temperature?: number | undefined;
        } & Record<Exclude<keyof I["completionOptions"], keyof CompletionOptions>, never>) | undefined;
        tools?: ({
            searchIndex?: {
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } | undefined;
            function?: {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } | undefined;
        }[] & ({
            searchIndex?: {
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } | undefined;
            function?: {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } | undefined;
        } & {
            searchIndex?: ({
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } & {
                searchIndexIds?: (string[] & string[] & Record<Exclude<keyof I["tools"][number]["searchIndex"]["searchIndexIds"], keyof string[]>, never>) | undefined;
                maxNumResults?: number | undefined;
            } & Record<Exclude<keyof I["tools"][number]["searchIndex"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").SearchIndexTool>, never>) | undefined;
            function?: ({
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } & {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: ({
                    [x: string]: any;
                } & {
                    [x: string]: any;
                } & Record<Exclude<keyof I["tools"][number]["function"]["parameters"], string | number>, never>) | undefined;
            } & Record<Exclude<keyof I["tools"][number]["function"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").FunctionTool>, never>) | undefined;
        } & Record<Exclude<keyof I["tools"][number], keyof Tool>, never>)[] & Record<Exclude<keyof I["tools"], keyof {
            searchIndex?: {
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } | undefined;
            function?: {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreateAssistantRequest>, never>>(object: I): CreateAssistantRequest;
};
export declare const CreateAssistantRequest_LabelsEntry: {
    encode(message: CreateAssistantRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateAssistantRequest_LabelsEntry;
    fromJSON(object: any): CreateAssistantRequest_LabelsEntry;
    toJSON(message: CreateAssistantRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateAssistantRequest_LabelsEntry>, never>>(object: I): CreateAssistantRequest_LabelsEntry;
};
export declare const GetAssistantRequest: {
    encode(message: GetAssistantRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetAssistantRequest;
    fromJSON(object: any): GetAssistantRequest;
    toJSON(message: GetAssistantRequest): unknown;
    fromPartial<I extends {
        assistantId?: string | undefined;
    } & {
        assistantId?: string | undefined;
    } & Record<Exclude<keyof I, "assistantId">, never>>(object: I): GetAssistantRequest;
};
export declare const UpdateAssistantRequest: {
    encode(message: UpdateAssistantRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateAssistantRequest;
    fromJSON(object: any): UpdateAssistantRequest;
    toJSON(message: UpdateAssistantRequest): unknown;
    fromPartial<I extends {
        assistantId?: 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;
        modelUri?: string | undefined;
        instruction?: string | undefined;
        promptTruncationOptions?: {
            maxPromptTokens?: number | undefined;
            autoStrategy?: {} | undefined;
            lastMessagesStrategy?: {
                numMessages?: number | undefined;
            } | undefined;
        } | undefined;
        completionOptions?: {
            maxTokens?: number | undefined;
            temperature?: number | undefined;
        } | undefined;
        tools?: {
            searchIndex?: {
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } | undefined;
            function?: {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } | undefined;
        }[] | undefined;
    } & {
        assistantId?: 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;
        modelUri?: string | undefined;
        instruction?: string | undefined;
        promptTruncationOptions?: ({
            maxPromptTokens?: number | undefined;
            autoStrategy?: {} | undefined;
            lastMessagesStrategy?: {
                numMessages?: number | undefined;
            } | undefined;
        } & {
            maxPromptTokens?: number | undefined;
            autoStrategy?: ({} & {} & Record<Exclude<keyof I["promptTruncationOptions"]["autoStrategy"], never>, never>) | undefined;
            lastMessagesStrategy?: ({
                numMessages?: number | undefined;
            } & {
                numMessages?: number | undefined;
            } & Record<Exclude<keyof I["promptTruncationOptions"]["lastMessagesStrategy"], "numMessages">, never>) | undefined;
        } & Record<Exclude<keyof I["promptTruncationOptions"], keyof PromptTruncationOptions>, never>) | undefined;
        completionOptions?: ({
            maxTokens?: number | undefined;
            temperature?: number | undefined;
        } & {
            maxTokens?: number | undefined;
            temperature?: number | undefined;
        } & Record<Exclude<keyof I["completionOptions"], keyof CompletionOptions>, never>) | undefined;
        tools?: ({
            searchIndex?: {
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } | undefined;
            function?: {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } | undefined;
        }[] & ({
            searchIndex?: {
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } | undefined;
            function?: {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } | undefined;
        } & {
            searchIndex?: ({
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } & {
                searchIndexIds?: (string[] & string[] & Record<Exclude<keyof I["tools"][number]["searchIndex"]["searchIndexIds"], keyof string[]>, never>) | undefined;
                maxNumResults?: number | undefined;
            } & Record<Exclude<keyof I["tools"][number]["searchIndex"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").SearchIndexTool>, never>) | undefined;
            function?: ({
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } & {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: ({
                    [x: string]: any;
                } & {
                    [x: string]: any;
                } & Record<Exclude<keyof I["tools"][number]["function"]["parameters"], string | number>, never>) | undefined;
            } & Record<Exclude<keyof I["tools"][number]["function"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").FunctionTool>, never>) | undefined;
        } & Record<Exclude<keyof I["tools"][number], keyof Tool>, never>)[] & Record<Exclude<keyof I["tools"], keyof {
            searchIndex?: {
                searchIndexIds?: string[] | undefined;
                maxNumResults?: number | undefined;
            } | undefined;
            function?: {
                name?: string | undefined;
                description?: string | undefined;
                parameters?: {
                    [x: string]: any;
                } | undefined;
            } | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof UpdateAssistantRequest>, never>>(object: I): UpdateAssistantRequest;
};
export declare const UpdateAssistantRequest_LabelsEntry: {
    encode(message: UpdateAssistantRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateAssistantRequest_LabelsEntry;
    fromJSON(object: any): UpdateAssistantRequest_LabelsEntry;
    toJSON(message: UpdateAssistantRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateAssistantRequest_LabelsEntry>, never>>(object: I): UpdateAssistantRequest_LabelsEntry;
};
export declare const DeleteAssistantRequest: {
    encode(message: DeleteAssistantRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteAssistantRequest;
    fromJSON(object: any): DeleteAssistantRequest;
    toJSON(message: DeleteAssistantRequest): unknown;
    fromPartial<I extends {
        assistantId?: string | undefined;
    } & {
        assistantId?: string | undefined;
    } & Record<Exclude<keyof I, "assistantId">, never>>(object: I): DeleteAssistantRequest;
};
export declare const DeleteAssistantResponse: {
    encode(_: DeleteAssistantResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteAssistantResponse;
    fromJSON(_: any): DeleteAssistantResponse;
    toJSON(_: DeleteAssistantResponse): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): DeleteAssistantResponse;
};
export declare const ListAssistantsRequest: {
    encode(message: ListAssistantsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListAssistantsRequest;
    fromJSON(object: any): ListAssistantsRequest;
    toJSON(message: ListAssistantsRequest): 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 ListAssistantsRequest>, never>>(object: I): ListAssistantsRequest;
};
export declare const ListAssistantsResponse: {
    encode(message: ListAssistantsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListAssistantsResponse;
    fromJSON(object: any): ListAssistantsResponse;
    toJSON(message: ListAssistantsResponse): unknown;
    fromPartial<I extends {
        assistants?: {
            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;
            modelUri?: string | undefined;
            instruction?: string | undefined;
            promptTruncationOptions?: {
                maxPromptTokens?: number | undefined;
                autoStrategy?: {} | undefined;
                lastMessagesStrategy?: {
                    numMessages?: number | undefined;
                } | undefined;
            } | undefined;
            completionOptions?: {
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } | undefined;
            tools?: {
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        assistants?: ({
            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;
            modelUri?: string | undefined;
            instruction?: string | undefined;
            promptTruncationOptions?: {
                maxPromptTokens?: number | undefined;
                autoStrategy?: {} | undefined;
                lastMessagesStrategy?: {
                    numMessages?: number | undefined;
                } | undefined;
            } | undefined;
            completionOptions?: {
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } | undefined;
            tools?: {
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | 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;
            modelUri?: string | undefined;
            instruction?: string | undefined;
            promptTruncationOptions?: {
                maxPromptTokens?: number | undefined;
                autoStrategy?: {} | undefined;
                lastMessagesStrategy?: {
                    numMessages?: number | undefined;
                } | undefined;
            } | undefined;
            completionOptions?: {
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } | undefined;
            tools?: {
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | 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["assistants"][number]["expirationConfig"], keyof ExpirationConfig>, never>) | undefined;
            expiresAt?: Date | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["assistants"][number]["labels"], string | number>, never>) | undefined;
            modelUri?: string | undefined;
            instruction?: string | undefined;
            promptTruncationOptions?: ({
                maxPromptTokens?: number | undefined;
                autoStrategy?: {} | undefined;
                lastMessagesStrategy?: {
                    numMessages?: number | undefined;
                } | undefined;
            } & {
                maxPromptTokens?: number | undefined;
                autoStrategy?: ({} & {} & Record<Exclude<keyof I["assistants"][number]["promptTruncationOptions"]["autoStrategy"], never>, never>) | undefined;
                lastMessagesStrategy?: ({
                    numMessages?: number | undefined;
                } & {
                    numMessages?: number | undefined;
                } & Record<Exclude<keyof I["assistants"][number]["promptTruncationOptions"]["lastMessagesStrategy"], "numMessages">, never>) | undefined;
            } & Record<Exclude<keyof I["assistants"][number]["promptTruncationOptions"], keyof PromptTruncationOptions>, never>) | undefined;
            completionOptions?: ({
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } & {
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } & Record<Exclude<keyof I["assistants"][number]["completionOptions"], keyof CompletionOptions>, never>) | undefined;
            tools?: ({
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } | undefined;
            }[] & ({
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } | undefined;
            } & {
                searchIndex?: ({
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } & {
                    searchIndexIds?: (string[] & string[] & Record<Exclude<keyof I["assistants"][number]["tools"][number]["searchIndex"]["searchIndexIds"], keyof string[]>, never>) | undefined;
                    maxNumResults?: number | undefined;
                } & Record<Exclude<keyof I["assistants"][number]["tools"][number]["searchIndex"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").SearchIndexTool>, never>) | undefined;
                function?: ({
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } & {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: ({
                        [x: string]: any;
                    } & {
                        [x: string]: any;
                    } & Record<Exclude<keyof I["assistants"][number]["tools"][number]["function"]["parameters"], string | number>, never>) | undefined;
                } & Record<Exclude<keyof I["assistants"][number]["tools"][number]["function"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").FunctionTool>, never>) | undefined;
            } & Record<Exclude<keyof I["assistants"][number]["tools"][number], keyof Tool>, never>)[] & Record<Exclude<keyof I["assistants"][number]["tools"], keyof {
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } | undefined;
            }[]>, never>) | undefined;
        } & Record<Exclude<keyof I["assistants"][number], keyof Assistant>, never>)[] & Record<Exclude<keyof I["assistants"], 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;
            modelUri?: string | undefined;
            instruction?: string | undefined;
            promptTruncationOptions?: {
                maxPromptTokens?: number | undefined;
                autoStrategy?: {} | undefined;
                lastMessagesStrategy?: {
                    numMessages?: number | undefined;
                } | undefined;
            } | undefined;
            completionOptions?: {
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } | undefined;
            tools?: {
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListAssistantsResponse>, never>>(object: I): ListAssistantsResponse;
};
export declare const ListAssistantVersionsRequest: {
    encode(message: ListAssistantVersionsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListAssistantVersionsRequest;
    fromJSON(object: any): ListAssistantVersionsRequest;
    toJSON(message: ListAssistantVersionsRequest): unknown;
    fromPartial<I extends {
        assistantId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & {
        assistantId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListAssistantVersionsRequest>, never>>(object: I): ListAssistantVersionsRequest;
};
export declare const AssistantVersion: {
    encode(message: AssistantVersion, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AssistantVersion;
    fromJSON(object: any): AssistantVersion;
    toJSON(message: AssistantVersion): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        updateMask?: {
            paths?: string[] | undefined;
        } | undefined;
        assistant?: {
            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;
            modelUri?: string | undefined;
            instruction?: string | undefined;
            promptTruncationOptions?: {
                maxPromptTokens?: number | undefined;
                autoStrategy?: {} | undefined;
                lastMessagesStrategy?: {
                    numMessages?: number | undefined;
                } | undefined;
            } | undefined;
            completionOptions?: {
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } | undefined;
            tools?: {
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } | undefined;
            }[] | undefined;
        } | undefined;
    } & {
        id?: 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;
        assistant?: ({
            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;
            modelUri?: string | undefined;
            instruction?: string | undefined;
            promptTruncationOptions?: {
                maxPromptTokens?: number | undefined;
                autoStrategy?: {} | undefined;
                lastMessagesStrategy?: {
                    numMessages?: number | undefined;
                } | undefined;
            } | undefined;
            completionOptions?: {
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } | undefined;
            tools?: {
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | 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["assistant"]["expirationConfig"], keyof ExpirationConfig>, never>) | undefined;
            expiresAt?: Date | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["assistant"]["labels"], string | number>, never>) | undefined;
            modelUri?: string | undefined;
            instruction?: string | undefined;
            promptTruncationOptions?: ({
                maxPromptTokens?: number | undefined;
                autoStrategy?: {} | undefined;
                lastMessagesStrategy?: {
                    numMessages?: number | undefined;
                } | undefined;
            } & {
                maxPromptTokens?: number | undefined;
                autoStrategy?: ({} & {} & Record<Exclude<keyof I["assistant"]["promptTruncationOptions"]["autoStrategy"], never>, never>) | undefined;
                lastMessagesStrategy?: ({
                    numMessages?: number | undefined;
                } & {
                    numMessages?: number | undefined;
                } & Record<Exclude<keyof I["assistant"]["promptTruncationOptions"]["lastMessagesStrategy"], "numMessages">, never>) | undefined;
            } & Record<Exclude<keyof I["assistant"]["promptTruncationOptions"], keyof PromptTruncationOptions>, never>) | undefined;
            completionOptions?: ({
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } & {
                maxTokens?: number | undefined;
                temperature?: number | undefined;
            } & Record<Exclude<keyof I["assistant"]["completionOptions"], keyof CompletionOptions>, never>) | undefined;
            tools?: ({
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } | undefined;
            }[] & ({
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } | undefined;
            } & {
                searchIndex?: ({
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } & {
                    searchIndexIds?: (string[] & string[] & Record<Exclude<keyof I["assistant"]["tools"][number]["searchIndex"]["searchIndexIds"], keyof string[]>, never>) | undefined;
                    maxNumResults?: number | undefined;
                } & Record<Exclude<keyof I["assistant"]["tools"][number]["searchIndex"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").SearchIndexTool>, never>) | undefined;
                function?: ({
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } & {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: ({
                        [x: string]: any;
                    } & {
                        [x: string]: any;
                    } & Record<Exclude<keyof I["assistant"]["tools"][number]["function"]["parameters"], string | number>, never>) | undefined;
                } & Record<Exclude<keyof I["assistant"]["tools"][number]["function"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").FunctionTool>, never>) | undefined;
            } & Record<Exclude<keyof I["assistant"]["tools"][number], keyof Tool>, never>)[] & Record<Exclude<keyof I["assistant"]["tools"], keyof {
                searchIndex?: {
                    searchIndexIds?: string[] | undefined;
                    maxNumResults?: number | undefined;
                } | undefined;
                function?: {
                    name?: string | undefined;
                    description?: string | undefined;
                    parameters?: {
                        [x: string]: any;
                    } | undefined;
                } | undefined;
            }[]>, never>) | undefined;
        } & Record<Exclude<keyof I["assistant"], keyof Assistant>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof AssistantVersion>, never>>(object: I): AssistantVersion;
};
export declare const ListAssistantVersionsResponse: {
    encode(message: ListAssistantVersionsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListAssistantVersionsResponse;
    fromJSON(object: any): ListAssistantVersionsResponse;
    toJSON(message: ListAssistantVersionsResponse): unknown;
    fromPartial<I extends {
        versions?: {
            id?: string | undefined;
            updateMask?: {
                paths?: string[] | undefined;
            } | undefined;
            assistant?: {
                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;
                modelUri?: string | undefined;
                instruction?: string | undefined;
                promptTruncationOptions?: {
                    maxPromptTokens?: number | undefined;
                    autoStrategy?: {} | undefined;
                    lastMessagesStrategy?: {
                        numMessages?: number | undefined;
                    } | undefined;
                } | undefined;
                completionOptions?: {
                    maxTokens?: number | undefined;
                    temperature?: number | undefined;
                } | undefined;
                tools?: {
                    searchIndex?: {
                        searchIndexIds?: string[] | undefined;
                        maxNumResults?: number | undefined;
                    } | undefined;
                    function?: {
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: {
                            [x: string]: any;
                        } | undefined;
                    } | undefined;
                }[] | undefined;
            } | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        versions?: ({
            id?: string | undefined;
            updateMask?: {
                paths?: string[] | undefined;
            } | undefined;
            assistant?: {
                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;
                modelUri?: string | undefined;
                instruction?: string | undefined;
                promptTruncationOptions?: {
                    maxPromptTokens?: number | undefined;
                    autoStrategy?: {} | undefined;
                    lastMessagesStrategy?: {
                        numMessages?: number | undefined;
                    } | undefined;
                } | undefined;
                completionOptions?: {
                    maxTokens?: number | undefined;
                    temperature?: number | undefined;
                } | undefined;
                tools?: {
                    searchIndex?: {
                        searchIndexIds?: string[] | undefined;
                        maxNumResults?: number | undefined;
                    } | undefined;
                    function?: {
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: {
                            [x: string]: any;
                        } | undefined;
                    } | undefined;
                }[] | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            updateMask?: {
                paths?: string[] | undefined;
            } | undefined;
            assistant?: {
                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;
                modelUri?: string | undefined;
                instruction?: string | undefined;
                promptTruncationOptions?: {
                    maxPromptTokens?: number | undefined;
                    autoStrategy?: {} | undefined;
                    lastMessagesStrategy?: {
                        numMessages?: number | undefined;
                    } | undefined;
                } | undefined;
                completionOptions?: {
                    maxTokens?: number | undefined;
                    temperature?: number | undefined;
                } | undefined;
                tools?: {
                    searchIndex?: {
                        searchIndexIds?: string[] | undefined;
                        maxNumResults?: number | undefined;
                    } | undefined;
                    function?: {
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: {
                            [x: string]: any;
                        } | undefined;
                    } | undefined;
                }[] | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            updateMask?: ({
                paths?: string[] | undefined;
            } & {
                paths?: (string[] & string[] & Record<Exclude<keyof I["versions"][number]["updateMask"]["paths"], keyof string[]>, never>) | undefined;
            } & Record<Exclude<keyof I["versions"][number]["updateMask"], "paths">, never>) | undefined;
            assistant?: ({
                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;
                modelUri?: string | undefined;
                instruction?: string | undefined;
                promptTruncationOptions?: {
                    maxPromptTokens?: number | undefined;
                    autoStrategy?: {} | undefined;
                    lastMessagesStrategy?: {
                        numMessages?: number | undefined;
                    } | undefined;
                } | undefined;
                completionOptions?: {
                    maxTokens?: number | undefined;
                    temperature?: number | undefined;
                } | undefined;
                tools?: {
                    searchIndex?: {
                        searchIndexIds?: string[] | undefined;
                        maxNumResults?: number | undefined;
                    } | undefined;
                    function?: {
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: {
                            [x: string]: any;
                        } | 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["versions"][number]["assistant"]["expirationConfig"], keyof ExpirationConfig>, never>) | undefined;
                expiresAt?: Date | undefined;
                labels?: ({
                    [x: string]: string | undefined;
                } & {
                    [x: string]: string | undefined;
                } & Record<Exclude<keyof I["versions"][number]["assistant"]["labels"], string | number>, never>) | undefined;
                modelUri?: string | undefined;
                instruction?: string | undefined;
                promptTruncationOptions?: ({
                    maxPromptTokens?: number | undefined;
                    autoStrategy?: {} | undefined;
                    lastMessagesStrategy?: {
                        numMessages?: number | undefined;
                    } | undefined;
                } & {
                    maxPromptTokens?: number | undefined;
                    autoStrategy?: ({} & {} & Record<Exclude<keyof I["versions"][number]["assistant"]["promptTruncationOptions"]["autoStrategy"], never>, never>) | undefined;
                    lastMessagesStrategy?: ({
                        numMessages?: number | undefined;
                    } & {
                        numMessages?: number | undefined;
                    } & Record<Exclude<keyof I["versions"][number]["assistant"]["promptTruncationOptions"]["lastMessagesStrategy"], "numMessages">, never>) | undefined;
                } & Record<Exclude<keyof I["versions"][number]["assistant"]["promptTruncationOptions"], keyof PromptTruncationOptions>, never>) | undefined;
                completionOptions?: ({
                    maxTokens?: number | undefined;
                    temperature?: number | undefined;
                } & {
                    maxTokens?: number | undefined;
                    temperature?: number | undefined;
                } & Record<Exclude<keyof I["versions"][number]["assistant"]["completionOptions"], keyof CompletionOptions>, never>) | undefined;
                tools?: ({
                    searchIndex?: {
                        searchIndexIds?: string[] | undefined;
                        maxNumResults?: number | undefined;
                    } | undefined;
                    function?: {
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: {
                            [x: string]: any;
                        } | undefined;
                    } | undefined;
                }[] & ({
                    searchIndex?: {
                        searchIndexIds?: string[] | undefined;
                        maxNumResults?: number | undefined;
                    } | undefined;
                    function?: {
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: {
                            [x: string]: any;
                        } | undefined;
                    } | undefined;
                } & {
                    searchIndex?: ({
                        searchIndexIds?: string[] | undefined;
                        maxNumResults?: number | undefined;
                    } & {
                        searchIndexIds?: (string[] & string[] & Record<Exclude<keyof I["versions"][number]["assistant"]["tools"][number]["searchIndex"]["searchIndexIds"], keyof string[]>, never>) | undefined;
                        maxNumResults?: number | undefined;
                    } & Record<Exclude<keyof I["versions"][number]["assistant"]["tools"][number]["searchIndex"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").SearchIndexTool>, never>) | undefined;
                    function?: ({
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: {
                            [x: string]: any;
                        } | undefined;
                    } & {
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: ({
                            [x: string]: any;
                        } & {
                            [x: string]: any;
                        } & Record<Exclude<keyof I["versions"][number]["assistant"]["tools"][number]["function"]["parameters"], string | number>, never>) | undefined;
                    } & Record<Exclude<keyof I["versions"][number]["assistant"]["tools"][number]["function"], keyof import("../../../../../yandex/cloud/ai/assistants/v1/common").FunctionTool>, never>) | undefined;
                } & Record<Exclude<keyof I["versions"][number]["assistant"]["tools"][number], keyof Tool>, never>)[] & Record<Exclude<keyof I["versions"][number]["assistant"]["tools"], keyof {
                    searchIndex?: {
                        searchIndexIds?: string[] | undefined;
                        maxNumResults?: number | undefined;
                    } | undefined;
                    function?: {
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: {
                            [x: string]: any;
                        } | undefined;
                    } | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["versions"][number]["assistant"], keyof Assistant>, never>) | undefined;
        } & Record<Exclude<keyof I["versions"][number], keyof AssistantVersion>, never>)[] & Record<Exclude<keyof I["versions"], keyof {
            id?: string | undefined;
            updateMask?: {
                paths?: string[] | undefined;
            } | undefined;
            assistant?: {
                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;
                modelUri?: string | undefined;
                instruction?: string | undefined;
                promptTruncationOptions?: {
                    maxPromptTokens?: number | undefined;
                    autoStrategy?: {} | undefined;
                    lastMessagesStrategy?: {
                        numMessages?: number | undefined;
                    } | undefined;
                } | undefined;
                completionOptions?: {
                    maxTokens?: number | undefined;
                    temperature?: number | undefined;
                } | undefined;
                tools?: {
                    searchIndex?: {
                        searchIndexIds?: string[] | undefined;
                        maxNumResults?: number | undefined;
                    } | undefined;
                    function?: {
                        name?: string | undefined;
                        description?: string | undefined;
                        parameters?: {
                            [x: string]: any;
                        } | undefined;
                    } | undefined;
                }[] | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListAssistantVersionsResponse>, never>>(object: I): ListAssistantVersionsResponse;
};
/** AssistantService provides operations for managing assistants. */
export declare const AssistantServiceService: {
    /** Create a new assistant. */
    readonly create: {
        readonly path: "/yandex.cloud.ai.assistants.v1.AssistantService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreateAssistantRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreateAssistantRequest;
        readonly responseSerialize: (value: Assistant) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Assistant;
    };
    /** Retrieve details of a specific assistant by its ID. */
    readonly get: {
        readonly path: "/yandex.cloud.ai.assistants.v1.AssistantService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetAssistantRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetAssistantRequest;
        readonly responseSerialize: (value: Assistant) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Assistant;
    };
    /** Update an existing assistant. */
    readonly update: {
        readonly path: "/yandex.cloud.ai.assistants.v1.AssistantService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateAssistantRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateAssistantRequest;
        readonly responseSerialize: (value: Assistant) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Assistant;
    };
    /** Delete an assistant by its ID. */
    readonly delete: {
        readonly path: "/yandex.cloud.ai.assistants.v1.AssistantService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteAssistantRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteAssistantRequest;
        readonly responseSerialize: (value: DeleteAssistantResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => DeleteAssistantResponse;
    };
    /** List assistants in a specific folder. */
    readonly list: {
        readonly path: "/yandex.cloud.ai.assistants.v1.AssistantService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListAssistantsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListAssistantsRequest;
        readonly responseSerialize: (value: ListAssistantsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListAssistantsResponse;
    };
    /** Lists all versions of a specific assistant. */
    readonly listVersions: {
        readonly path: "/yandex.cloud.ai.assistants.v1.AssistantService/ListVersions";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListAssistantVersionsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListAssistantVersionsRequest;
        readonly responseSerialize: (value: ListAssistantVersionsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListAssistantVersionsResponse;
    };
};
export interface AssistantServiceServer extends UntypedServiceImplementation {
    /** Create a new assistant. */
    create: handleUnaryCall<CreateAssistantRequest, Assistant>;
    /** Retrieve details of a specific assistant by its ID. */
    get: handleUnaryCall<GetAssistantRequest, Assistant>;
    /** Update an existing assistant. */
    update: handleUnaryCall<UpdateAssistantRequest, Assistant>;
    /** Delete an assistant by its ID. */
    delete: handleUnaryCall<DeleteAssistantRequest, DeleteAssistantResponse>;
    /** List assistants in a specific folder. */
    list: handleUnaryCall<ListAssistantsRequest, ListAssistantsResponse>;
    /** Lists all versions of a specific assistant. */
    listVersions: handleUnaryCall<ListAssistantVersionsRequest, ListAssistantVersionsResponse>;
}
export interface AssistantServiceClient extends Client {
    /** Create a new assistant. */
    create(request: CreateAssistantRequest, callback: (error: ServiceError | null, response: Assistant) => void): ClientUnaryCall;
    create(request: CreateAssistantRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Assistant) => void): ClientUnaryCall;
    create(request: CreateAssistantRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Assistant) => void): ClientUnaryCall;
    /** Retrieve details of a specific assistant by its ID. */
    get(request: GetAssistantRequest, callback: (error: ServiceError | null, response: Assistant) => void): ClientUnaryCall;
    get(request: GetAssistantRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Assistant) => void): ClientUnaryCall;
    get(request: GetAssistantRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Assistant) => void): ClientUnaryCall;
    /** Update an existing assistant. */
    update(request: UpdateAssistantRequest, callback: (error: ServiceError | null, response: Assistant) => void): ClientUnaryCall;
    update(request: UpdateAssistantRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Assistant) => void): ClientUnaryCall;
    update(request: UpdateAssistantRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Assistant) => void): ClientUnaryCall;
    /** Delete an assistant by its ID. */
    delete(request: DeleteAssistantRequest, callback: (error: ServiceError | null, response: DeleteAssistantResponse) => void): ClientUnaryCall;
    delete(request: DeleteAssistantRequest, metadata: Metadata, callback: (error: ServiceError | null, response: DeleteAssistantResponse) => void): ClientUnaryCall;
    delete(request: DeleteAssistantRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: DeleteAssistantResponse) => void): ClientUnaryCall;
    /** List assistants in a specific folder. */
    list(request: ListAssistantsRequest, callback: (error: ServiceError | null, response: ListAssistantsResponse) => void): ClientUnaryCall;
    list(request: ListAssistantsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListAssistantsResponse) => void): ClientUnaryCall;
    list(request: ListAssistantsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListAssistantsResponse) => void): ClientUnaryCall;
    /** Lists all versions of a specific assistant. */
    listVersions(request: ListAssistantVersionsRequest, callback: (error: ServiceError | null, response: ListAssistantVersionsResponse) => void): ClientUnaryCall;
    listVersions(request: ListAssistantVersionsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListAssistantVersionsResponse) => void): ClientUnaryCall;
    listVersions(request: ListAssistantVersionsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListAssistantVersionsResponse) => void): ClientUnaryCall;
}
export declare const AssistantServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): AssistantServiceClient;
    service: typeof AssistantServiceService;
};
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 {};
