import { AsyncExecutionResult, VertesiaClient } from "@vertesia/client";
import { AgentSearchScope, ExecutionEnvironmentRef, InCodeInteraction, WorkflowInteractionVars } from "@vertesia/common";
import { JSONObject } from "@vertesia/json";
import type { JSONSchema4 } from "json-schema";
import React from "react";
export declare class PayloadBuilder {
    vertesia: VertesiaClient;
    updateState: (data: PayloadBuilder) => void;
    _interactive: boolean;
    _debug_mode: boolean;
    _collection: string | undefined;
    _start: boolean;
    _preserveRunValues: boolean;
    _interaction: InCodeInteraction | undefined;
    _environment: ExecutionEnvironmentRef | undefined;
    _model: string;
    _tool_names: string[];
    _data: JSONObject | undefined;
    private _interactionParamsSchema?;
    private _inputValidator?;
    constructor(vertesia: VertesiaClient, updateState: (data: PayloadBuilder) => void);
    onStateChanged(): void;
    clone(): PayloadBuilder;
    get interactive(): boolean;
    set interactive(interactive: boolean);
    get debug_mode(): boolean;
    set debug_mode(debug_mode: boolean);
    get collection(): string | undefined;
    set collection(collection: string | undefined);
    get search_scope(): AgentSearchScope.Collection | undefined;
    restoreConversation(context: WorkflowInteractionVars): Promise<void>;
    get interaction(): InCodeInteraction | undefined;
    set interaction(interaction: InCodeInteraction | undefined);
    get environment(): ExecutionEnvironmentRef | undefined;
    set environment(environment: ExecutionEnvironmentRef | undefined);
    get model(): string | undefined;
    set model(model: string | undefined);
    get tool_names(): string[];
    set tool_names(tools: string[]);
    get data(): JSONObject | undefined;
    set data(prompt_data: JSONObject);
    set run(run: AsyncExecutionResult | {
        workflow_id: string;
        run_id: string;
    });
    set start(value: boolean);
    get start(): boolean;
    get preserveRunValues(): boolean;
    set preserveRunValues(value: boolean);
    get interactionParamsSchema(): JSONSchema4 | null | undefined;
    set interactionParamsSchema(schema: JSONSchema4 | null | undefined);
    reset(): void;
    validateInput(): {
        isValid: boolean;
        errorMessage?: string;
    };
}
export declare const PayloadContext: React.Context<PayloadBuilder | undefined>;
interface PayloadProviderProps {
    children: React.ReactNode;
}
export declare function PayloadBuilderProvider({ children }: PayloadProviderProps): import("react/jsx-runtime").JSX.Element | undefined;
export declare function usePayloadBuilder(): PayloadBuilder;
export {};
//# sourceMappingURL=PayloadBuilder.d.ts.map