/*************************************************************************************************

Welcome to Baml! To use this generated code, please run one of the following:

$ npm install @boundaryml/baml
$ yarn add @boundaryml/baml
$ pnpm add @boundaryml/baml

*************************************************************************************************/
import type { BamlRuntime, BamlCtxManager, ClientRegistry, Image, Collector } from "@boundaryml/baml";
import { BamlStream } from "@boundaryml/baml";
import type { RecursivePartialNull as MovedRecursivePartialNull } from "./types";
import type { partial_types } from "./partial_types";
import type * as types from "./types";
import type TypeBuilder from "./type_builder";
import { AsyncHttpRequest, AsyncHttpStreamRequest } from "./async_request";
import { LlmResponseParser, LlmStreamParser } from "./parser";
/**
 * @deprecated Use RecursivePartialNull from 'baml_client/types' instead.
 */
export type RecursivePartialNull<T> = MovedRecursivePartialNull<T>;
type BamlCallOptions = {
    tb?: TypeBuilder;
    clientRegistry?: ClientRegistry;
    collector?: Collector | Collector[];
    env?: Record<string, string | undefined>;
};
export declare class BamlAsyncClient {
    private runtime;
    private ctxManager;
    private streamClient;
    private httpRequest;
    private httpStreamRequest;
    private llmResponseParser;
    private llmStreamParser;
    private bamlOptions;
    constructor(runtime: BamlRuntime, ctxManager: BamlCtxManager, bamlOptions?: BamlCallOptions);
    withOptions(bamlOptions: BamlCallOptions): BamlAsyncClient;
    get stream(): BamlStreamClient;
    get request(): AsyncHttpRequest;
    get streamRequest(): AsyncHttpStreamRequest;
    get parse(): LlmResponseParser;
    get parseStream(): LlmStreamParser;
    CreatePartialRecipe(memory: types.AgentContext, task: string, taskData: (Image | string)[], includeClaudeSpoof: boolean, __baml_options__?: BamlCallOptions): Promise<types.PartialRecipe>;
    ExtractData(instructions: string, screenshot: Image, domContent: string, includeClaudeSpoof: boolean, __baml_options__?: BamlCallOptions): Promise<types.ExtractedData>;
    QueryMemory(memory: types.AgentContext, query: string, includeClaudeSpoof: boolean, __baml_options__?: BamlCallOptions): Promise<types.QueryResponse>;
}
declare class BamlStreamClient {
    private runtime;
    private ctxManager;
    private bamlOptions;
    constructor(runtime: BamlRuntime, ctxManager: BamlCtxManager, bamlOptions?: BamlCallOptions);
    CreatePartialRecipe(memory: types.AgentContext, task: string, taskData: (Image | string)[], includeClaudeSpoof: boolean, __baml_options__?: {
        tb?: TypeBuilder;
        clientRegistry?: ClientRegistry;
        collector?: Collector | Collector[];
        env?: Record<string, string | undefined>;
    }): BamlStream<partial_types.PartialRecipe, types.PartialRecipe>;
    ExtractData(instructions: string, screenshot: Image, domContent: string, includeClaudeSpoof: boolean, __baml_options__?: {
        tb?: TypeBuilder;
        clientRegistry?: ClientRegistry;
        collector?: Collector | Collector[];
        env?: Record<string, string | undefined>;
    }): BamlStream<partial_types.ExtractedData, types.ExtractedData>;
    QueryMemory(memory: types.AgentContext, query: string, includeClaudeSpoof: boolean, __baml_options__?: {
        tb?: TypeBuilder;
        clientRegistry?: ClientRegistry;
        collector?: Collector | Collector[];
        env?: Record<string, string | undefined>;
    }): BamlStream<partial_types.QueryResponse, types.QueryResponse>;
}
export declare const b: BamlAsyncClient;
export {};
