import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type ListKnowledgeBasesRequest = {
    /**
     * A limit on the number of objects to be returned. Limit can range between 1 and 50, and the default is 10
     */
    limit?: number | undefined;
    /**
     * A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `01JJ1HDHN79XAS7A01WB3HYSDB`, your subsequent call can include `after=01JJ1HDHN79XAS7A01WB3HYSDB` in order to fetch the next page of the list.
     */
    startingAfter?: string | undefined;
    /**
     * A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `01JJ1HDHN79XAS7A01WB3HYSDB`, your subsequent call can include `before=01JJ1HDHN79XAS7A01WB3HYSDB` in order to fetch the previous page of the list.
     */
    endingBefore?: string | undefined;
};
export declare const ListKnowledgeBasesObject: {
    readonly List: "list";
};
export type ListKnowledgeBasesObject = ClosedEnum<typeof ListKnowledgeBasesObject>;
export declare const ListKnowledgeBasesDataKnowledgeType: {
    readonly External: "external";
};
export type ListKnowledgeBasesDataKnowledgeType = ClosedEnum<typeof ListKnowledgeBasesDataKnowledgeType>;
/**
 * The rerank configuration for the knowledge base. In case the model is provided it will be used to enhance the search precision.
 */
export type DataRerankConfig = {
    /**
     * The number of results to return by the reranking model
     */
    topK: number;
    /**
     * The threshold value used to filter the rerank results, only documents with a relevance score greater than the threshold will be returned
     */
    rerankThreshold: number;
    /**
     * The rerank model to use for the knowledge base.
     */
    rerankModel: string;
};
/**
 * The Agentic RAG configuration for the knowledge base. If `null` is provided, Agentic RAG will be disabled.
 */
export type DataAgenticRagConfig = {
    /**
     * The model to use for the Agentic RAG
     */
    model: string;
};
/**
 * The retrieval settings for the knowledge base.
 */
export type DataRetrievalSettings = {
    /**
     * The number of results to return from the search.
     */
    topK: number;
    /**
     * The threshold value used to filter the search results, only documents with a relevance score greater than the threshold will be returned
     */
    threshold: number;
    /**
     * The rerank configuration for the knowledge base. In case the model is provided it will be used to enhance the search precision.
     */
    rerankConfig?: DataRerankConfig | null | undefined;
    /**
     * The Agentic RAG configuration for the knowledge base. If `null` is provided, Agentic RAG will be disabled.
     */
    agenticRagConfig?: DataAgenticRagConfig | null | undefined;
};
export type DataExternalConfig = {
    /**
     * The name of the external knowledge base.
     */
    name: string;
    /**
     * The API URL of the external knowledge base.
     */
    apiUrl: string;
};
export type Data2 = {
    /**
     * The unique identifier of the knowledge base.
     */
    id: string;
    /**
     * The creation date of the knowledge base.
     */
    created: string;
    /**
     * The description of the knowledge base.
     */
    description?: string | undefined;
    /**
     * The unique key of the knowledge base.
     */
    key: string;
    /**
     * The project/domain ID of the knowledge base.
     */
    domainId: string;
    /**
     * Entity storage path in the format: `project/folder/subfolder/...`
     *
     * @remarks
     *
     * The first element identifies the project, followed by nested folders (auto-created as needed).
     *
     * With project-based API keys, the first element is treated as a folder name, as the project is predetermined by the API key.
     */
    path?: string | undefined;
    createdById?: string | null | undefined;
    updatedById?: string | null | undefined;
    /**
     * The last update date of the knowledge base.
     */
    updated: string;
    type: ListKnowledgeBasesDataKnowledgeType;
    /**
     * The retrieval settings for the knowledge base.
     */
    retrievalSettings?: DataRetrievalSettings | undefined;
    externalConfig: DataExternalConfig;
};
export declare const ListKnowledgeBasesDataType: {
    readonly Internal: "internal";
};
export type ListKnowledgeBasesDataType = ClosedEnum<typeof ListKnowledgeBasesDataType>;
/**
 * The retrieval type to use for the knowledge base. If not provided, Hybrid Search will be used as a default query strategy.
 */
export declare const DataRetrievalType: {
    readonly VectorSearch: "vector_search";
    readonly KeywordSearch: "keyword_search";
    readonly HybridSearch: "hybrid_search";
};
/**
 * The retrieval type to use for the knowledge base. If not provided, Hybrid Search will be used as a default query strategy.
 */
export type DataRetrievalType = ClosedEnum<typeof DataRetrievalType>;
/**
 * The rerank configuration for the knowledge base. In case the model is provided it will be used to enhance the search precision.
 */
export type ListKnowledgeBasesDataRerankConfig = {
    /**
     * The number of results to return by the reranking model
     */
    topK: number;
    /**
     * The threshold value used to filter the rerank results, only documents with a relevance score greater than the threshold will be returned
     */
    rerankThreshold: number;
    /**
     * The rerank model to use for the knowledge base.
     */
    rerankModel: string;
};
/**
 * The Agentic RAG configuration for the knowledge base. If `null` is provided, Agentic RAG will be disabled.
 */
export type ListKnowledgeBasesDataAgenticRagConfig = {
    /**
     * The model to use for the Agentic RAG
     */
    model: string;
};
/**
 * The retrieval settings for the knowledge base. If not provider, Hybrid Search will be used as a default query strategy.
 */
export type ListKnowledgeBasesDataRetrievalSettings = {
    /**
     * The retrieval type to use for the knowledge base. If not provided, Hybrid Search will be used as a default query strategy.
     */
    retrievalType: DataRetrievalType;
    /**
     * The number of results to return from the search.
     */
    topK: number;
    /**
     * The threshold value used to filter the search results, only documents with a relevance score greater than the threshold will be returned
     */
    threshold: number;
    /**
     * The rerank configuration for the knowledge base. In case the model is provided it will be used to enhance the search precision.
     */
    rerankConfig?: ListKnowledgeBasesDataRerankConfig | null | undefined;
    /**
     * The Agentic RAG configuration for the knowledge base. If `null` is provided, Agentic RAG will be disabled.
     */
    agenticRagConfig?: ListKnowledgeBasesDataAgenticRagConfig | null | undefined;
};
export type Data1 = {
    /**
     * The unique identifier of the knowledge base.
     */
    id: string;
    /**
     * The creation date of the knowledge base.
     */
    created: string;
    /**
     * The description of the knowledge base.
     */
    description?: string | undefined;
    /**
     * The unique key of the knowledge base.
     */
    key: string;
    /**
     * The project/domain ID of the knowledge base.
     */
    domainId: string;
    /**
     * Entity storage path in the format: `project/folder/subfolder/...`
     *
     * @remarks
     *
     * The first element identifies the project, followed by nested folders (auto-created as needed).
     *
     * With project-based API keys, the first element is treated as a folder name, as the project is predetermined by the API key.
     */
    path?: string | undefined;
    createdById?: string | null | undefined;
    updatedById?: string | null | undefined;
    /**
     * The last update date of the knowledge base.
     */
    updated: string;
    type: ListKnowledgeBasesDataType;
    /**
     * The retrieval settings for the knowledge base. If not provider, Hybrid Search will be used as a default query strategy.
     */
    retrievalSettings?: ListKnowledgeBasesDataRetrievalSettings | undefined;
    /**
     * The embeddings model used for the knowledge base.
     */
    model: string;
};
export type ListKnowledgeBasesData = Data1 | Data2;
/**
 * Knowledge bases retrieved
 */
export type ListKnowledgeBasesResponseBody = {
    object: ListKnowledgeBasesObject;
    data: Array<Data1 | Data2>;
    hasMore: boolean;
};
/** @internal */
export type ListKnowledgeBasesRequest$Outbound = {
    limit: number;
    starting_after?: string | undefined;
    ending_before?: string | undefined;
};
/** @internal */
export declare const ListKnowledgeBasesRequest$outboundSchema: z.ZodType<ListKnowledgeBasesRequest$Outbound, z.ZodTypeDef, ListKnowledgeBasesRequest>;
export declare function listKnowledgeBasesRequestToJSON(listKnowledgeBasesRequest: ListKnowledgeBasesRequest): string;
/** @internal */
export declare const ListKnowledgeBasesObject$inboundSchema: z.ZodNativeEnum<typeof ListKnowledgeBasesObject>;
/** @internal */
export declare const ListKnowledgeBasesDataKnowledgeType$inboundSchema: z.ZodNativeEnum<typeof ListKnowledgeBasesDataKnowledgeType>;
/** @internal */
export declare const DataRerankConfig$inboundSchema: z.ZodType<DataRerankConfig, z.ZodTypeDef, unknown>;
export declare function dataRerankConfigFromJSON(jsonString: string): SafeParseResult<DataRerankConfig, SDKValidationError>;
/** @internal */
export declare const DataAgenticRagConfig$inboundSchema: z.ZodType<DataAgenticRagConfig, z.ZodTypeDef, unknown>;
export declare function dataAgenticRagConfigFromJSON(jsonString: string): SafeParseResult<DataAgenticRagConfig, SDKValidationError>;
/** @internal */
export declare const DataRetrievalSettings$inboundSchema: z.ZodType<DataRetrievalSettings, z.ZodTypeDef, unknown>;
export declare function dataRetrievalSettingsFromJSON(jsonString: string): SafeParseResult<DataRetrievalSettings, SDKValidationError>;
/** @internal */
export declare const DataExternalConfig$inboundSchema: z.ZodType<DataExternalConfig, z.ZodTypeDef, unknown>;
export declare function dataExternalConfigFromJSON(jsonString: string): SafeParseResult<DataExternalConfig, SDKValidationError>;
/** @internal */
export declare const Data2$inboundSchema: z.ZodType<Data2, z.ZodTypeDef, unknown>;
export declare function data2FromJSON(jsonString: string): SafeParseResult<Data2, SDKValidationError>;
/** @internal */
export declare const ListKnowledgeBasesDataType$inboundSchema: z.ZodNativeEnum<typeof ListKnowledgeBasesDataType>;
/** @internal */
export declare const DataRetrievalType$inboundSchema: z.ZodNativeEnum<typeof DataRetrievalType>;
/** @internal */
export declare const ListKnowledgeBasesDataRerankConfig$inboundSchema: z.ZodType<ListKnowledgeBasesDataRerankConfig, z.ZodTypeDef, unknown>;
export declare function listKnowledgeBasesDataRerankConfigFromJSON(jsonString: string): SafeParseResult<ListKnowledgeBasesDataRerankConfig, SDKValidationError>;
/** @internal */
export declare const ListKnowledgeBasesDataAgenticRagConfig$inboundSchema: z.ZodType<ListKnowledgeBasesDataAgenticRagConfig, z.ZodTypeDef, unknown>;
export declare function listKnowledgeBasesDataAgenticRagConfigFromJSON(jsonString: string): SafeParseResult<ListKnowledgeBasesDataAgenticRagConfig, SDKValidationError>;
/** @internal */
export declare const ListKnowledgeBasesDataRetrievalSettings$inboundSchema: z.ZodType<ListKnowledgeBasesDataRetrievalSettings, z.ZodTypeDef, unknown>;
export declare function listKnowledgeBasesDataRetrievalSettingsFromJSON(jsonString: string): SafeParseResult<ListKnowledgeBasesDataRetrievalSettings, SDKValidationError>;
/** @internal */
export declare const Data1$inboundSchema: z.ZodType<Data1, z.ZodTypeDef, unknown>;
export declare function data1FromJSON(jsonString: string): SafeParseResult<Data1, SDKValidationError>;
/** @internal */
export declare const ListKnowledgeBasesData$inboundSchema: z.ZodType<ListKnowledgeBasesData, z.ZodTypeDef, unknown>;
export declare function listKnowledgeBasesDataFromJSON(jsonString: string): SafeParseResult<ListKnowledgeBasesData, SDKValidationError>;
/** @internal */
export declare const ListKnowledgeBasesResponseBody$inboundSchema: z.ZodType<ListKnowledgeBasesResponseBody, z.ZodTypeDef, unknown>;
export declare function listKnowledgeBasesResponseBodyFromJSON(jsonString: string): SafeParseResult<ListKnowledgeBasesResponseBody, SDKValidationError>;
//# sourceMappingURL=listknowledgebases.d.ts.map