import { AppContext, UserPayload } from '../types.js';
import { ResolverBase } from '../generic/ResolverBase.js';
export declare class AIPromptRunResult {
    success: boolean;
    output?: string;
    parsedResult?: string;
    error?: string;
    executionTimeMs?: number;
    tokensUsed?: number;
    promptRunId?: string;
    rawResult?: string;
    validationResult?: string;
    chatResult?: string;
}
export declare class SimplePromptResult {
    success: boolean;
    result?: string;
    resultObject?: string;
    modelName: string;
    error?: string;
    executionTimeMs?: number;
}
export declare class EmbedTextResult {
    embeddings: number[][];
    modelName: string;
    vectorDimensions: number;
    error?: string;
}
export declare class RunAIPromptResolver extends ResolverBase {
    /**
     * Internal method that handles the core AI prompt execution logic.
     * This method is called by both the regular and system user resolvers.
     * @private
     */
    private executeAIPrompt;
    /**
     * Public mutation for regular users to run AI prompts with authentication.
     */
    RunAIPrompt(promptId: string, { userPayload, providers }: AppContext, data?: string, overrideModelId?: string, overrideVendorId?: string, configurationId?: string, skipValidation?: boolean, templateData?: string, responseFormat?: string, temperature?: number, topP?: number, topK?: number, minP?: number, frequencyPenalty?: number, presencePenalty?: number, seed?: number, stopSequences?: string[], includeLogProbs?: boolean, topLogProbs?: number, messages?: string, rerunFromPromptRunID?: string, systemPromptOverride?: string): Promise<AIPromptRunResult>;
    /**
     * System user query for running AI prompts with elevated privileges.
     * Requires the @RequireSystemUser decorator to ensure only system users can access.
     */
    RunAIPromptSystemUser(promptId: string, { userPayload, providers }: AppContext, data?: string, overrideModelId?: string, overrideVendorId?: string, configurationId?: string, skipValidation?: boolean, templateData?: string, responseFormat?: string, temperature?: number, topP?: number, topK?: number, minP?: number, frequencyPenalty?: number, presencePenalty?: number, seed?: number, stopSequences?: string[], includeLogProbs?: boolean, topLogProbs?: number, messages?: string, rerunFromPromptRunID?: string, systemPromptOverride?: string): Promise<AIPromptRunResult>;
    /**
     * Helper method to select a model for simple prompt execution based on preferences or power level
     * @private
     */
    private selectModelForSimplePrompt;
    /**
     * Helper method to select an embedding model by size
     * @private
     */
    private selectEmbeddingModelBySize;
    /**
     * Helper method to build chat messages from system prompt and optional message history
     * @private
     */
    private buildChatMessages;
    /**
     * Helper method to format simple prompt result
     * @private
     */
    private formatSimpleResult;
    /**
     * Execute a simple prompt without requiring a stored AI Prompt entity.
     * This is designed for interactive components that need quick AI responses.
     */
    ExecuteSimplePrompt(systemPrompt: string, { userPayload }: {
        userPayload: UserPayload;
    }, messages?: string, preferredModels?: string[], modelPower?: string, responseFormat?: string): Promise<SimplePromptResult>;
    /**
     * System user query for executing simple prompts with elevated privileges
     */
    ExecuteSimplePromptSystemUser(systemPrompt: string, { userPayload }: {
        userPayload: UserPayload;
    }, messages?: string, preferredModels?: string[], modelPower?: string, responseFormat?: string): Promise<SimplePromptResult>;
    /**
     * Generate embeddings for text using local embedding models.
     * Designed for interactive components that need fast similarity calculations.
     */
    EmbedText(textToEmbed: string[], modelSize: string, { userPayload }: {
        userPayload: UserPayload;
    }): Promise<EmbedTextResult>;
    /**
     * System user query for generating embeddings with elevated privileges
     */
    EmbedTextSystemUser(textToEmbed: string[], modelSize: string, { userPayload }: {
        userPayload: UserPayload;
    }): Promise<EmbedTextResult>;
}
//# sourceMappingURL=RunAIPromptResolver.d.ts.map