import { DataCore } from "../data/SDKDataCore";
import { RemoteWorkspaceVersionIdentifier } from "./SDKRemoteIdentifiers";
export declare enum AIGetRouteQueryTask {
    amy = "amy",
    agent = "agent"
}
export declare enum AIAgentPersona {
    cody = "cody"
}
export declare enum RelaySummarizeStrategy {
    noun = "noun",
    verb = "verb"
}
export declare class AreaRelay {
    /** Internal: Engine */
    private dataCore;
    constructor(dataCore: DataCore);
    /** Answer questions and/or chat about product-development topics with full knowledge of your product development data.
     * @param from - Version identifier
     * @param prompt - Question to answer
     * @param options - Answering options
     * @returns Readable stream of amy's response
     */
    invokeAmy(prompt: string, chatId: string, context: RemoteWorkspaceVersionIdentifier & {
        brandId?: string;
    }, promptMetadata?: {
        forceBehavior?: {
            llm?: {
                model: string;
                provider: "Anthropic" | "OpenAI" | "xAI" | "Google";
            };
            prompt?: string;
        };
        [key: string]: any;
    }): Promise<ReadableStreamDefaultReader<Uint8Array>>;
    /** Execute specific agent on top of a already existing project.
     * @param prompt - User instruction that tells agent what to do
     * @param projectId - Project identifier (note the project must be already created)
     * @param branchId - Optional branch identifier (if not provided, the default branch will be used)
     * @returns Readable stream of the agent's response
     */
    invokeAgent(agent: AIAgentPersona, prompt: string, projectId: string, branchId?: string): Promise<ReadableStreamDefaultReader<Uint8Array>>;
    /** Retrieves dynamic URL for all AI tasks. Use the URL to
     * @param task - Which task to retrieve URL for
     * @returns Url for the task
     *
     */
    executableTaskUrl(task: AIGetRouteQueryTask): Promise<string>;
    /** Summarize text into a heavily condensed form.
     * @param text - Text to summarize
     * @param options - Summarization options
     * @returns Object containing the original and summarized text
     */
    summarizeText(text: string, options?: {
        maxWords?: number;
        strategy?: RelaySummarizeStrategy;
    }): Promise<{
        enteredText: string;
        summarizedText: string;
    }>;
}
