import { type CallbackManager } from "@llamaindex/core/global";
import { PromptHelper } from "@llamaindex/core/indices";
import type { BaseEmbedding } from "@llamaindex/core/embeddings";
import type { LLM } from "@llamaindex/core/llms";
import { type NodeParser } from "@llamaindex/core/node-parser";
export type PromptConfig = {
    llm?: string;
    lang?: string;
};
export interface Config {
    prompt: PromptConfig;
    promptHelper: PromptHelper | null;
    embedModel: BaseEmbedding | null;
    nodeParser: NodeParser | null;
    callbackManager: CallbackManager | null;
    chunkSize: number | undefined;
    chunkOverlap: number | undefined;
}
/**
 * @internal
 */
declare class GlobalSettings implements Config {
    #private;
    get debug(): boolean;
    get llm(): LLM;
    set llm(llm: LLM);
    withLLM<Result>(llm: LLM, fn: () => Result): Result;
    get promptHelper(): PromptHelper;
    set promptHelper(promptHelper: PromptHelper);
    withPromptHelper<Result>(promptHelper: PromptHelper, fn: () => Result): Result;
    get embedModel(): BaseEmbedding;
    set embedModel(embedModel: BaseEmbedding);
    withEmbedModel<Result>(embedModel: BaseEmbedding, fn: () => Result): Result;
    get nodeParser(): NodeParser;
    set nodeParser(nodeParser: NodeParser);
    withNodeParser<Result>(nodeParser: NodeParser, fn: () => Result): Result;
    get callbackManager(): CallbackManager;
    set callbackManager(callbackManager: CallbackManager);
    withCallbackManager<Result>(callbackManager: CallbackManager, fn: () => Result): Result;
    set chunkSize(chunkSize: number | undefined);
    get chunkSize(): number | undefined;
    withChunkSize<Result>(chunkSize: number, fn: () => Result): Result;
    get chunkOverlap(): number | undefined;
    set chunkOverlap(chunkOverlap: number | undefined);
    withChunkOverlap<Result>(chunkOverlap: number, fn: () => Result): Result;
    get prompt(): PromptConfig;
    set prompt(prompt: PromptConfig);
    withPrompt<Result>(prompt: PromptConfig, fn: () => Result): Result;
}
export declare const Settings: GlobalSettings;
export {};
