import type { BotonicContext, BotServerMessage } from '@botonic/core';
import { type AgenticOutputMessage, type GuardrailRule, type HubtypeAssistantMessage, type InferenceResponse, VerbosityLevel } from '@botonic/shared';
import { ContentFieldsBase } from './content-fields-base';
import type { HtInputGuardrailRule } from './hubtype-fields';
import type { FlowContent } from './index';
export declare abstract class FlowAiAgentBase extends ContentFieldsBase {
    name: string;
    instructions: string;
    model: string;
    verbosity: VerbosityLevel;
    inputGuardrailRules: HtInputGuardrailRule[];
    aiAgentResponse?: InferenceResponse;
    messages: AgenticOutputMessage[];
    abstract getAIAgentResponse(botonicContext: BotonicContext, previousContents?: FlowContent[]): Promise<InferenceResponse | undefined>;
    abstract trackAiAgentResponse(botonicContext: BotonicContext): Promise<void>;
    resolveAIAgentResponse(botonicContext: BotonicContext, previousContents?: FlowContent[]): Promise<InferenceResponse | undefined>;
    trackFlow(): Promise<void>;
    getFlowContentsByContentId(botonicContext: BotonicContext, contentId: string): Promise<FlowContent[]>;
    processContent(botonicContext: BotonicContext, previousContents?: FlowContent[]): Promise<void>;
    toBotonic(botonicContext: BotonicContext): Promise<BotServerMessage[]>;
    protected getPreviousHubtypeContents(previousContents?: FlowContent[]): HubtypeAssistantMessage[];
    protected getActiveInputGuardrailRules(inputGuardrailRules: HtInputGuardrailRule[]): GuardrailRule[];
}
