import { BotonicContext, Plugin } from '@botonic/core';
import { FlowBuilderApi } from './api';
import { type FlowContent } from './content-fields';
import { HtFlowBuilderData, HtNodeWithContent } from './content-fields/hubtype-fields/index';
import { AiAgentFunction, BotonicPluginFlowBuilderOptions, ContentFilter, InShadowingConfig, KnowledgeBaseFunction, PayloadParamsBase, RatingSubmittedInfo, SmartIntentsInferenceConfig, TrackEventFunction } from './types';
export declare class BotonicPluginFlowBuilder implements Plugin {
    cmsApi: FlowBuilderApi;
    jsonPath: string;
    botonicContext?: BotonicContext;
    localFlow?: HtFlowBuilderData;
    trackEvent?: TrackEventFunction;
    private functions;
    getKnowledgeBaseResponse?: KnowledgeBaseFunction;
    getAiAgentResponse?: AiAgentFunction;
    smartIntentsConfig: SmartIntentsInferenceConfig;
    inShadowing: InShadowingConfig;
    contentFilters: ContentFilter[];
    disableAIAgentInFirstInteraction: boolean;
    constructor(options?: BotonicPluginFlowBuilderOptions);
    pre(botonicContext: BotonicContext): Promise<void>;
    private convertWhatsappAiAgentEmptyPayloads;
    private updateRequestBeforeRoutes;
    private removeSourceSuffix;
    post(botonicContext: BotonicContext): void;
    getContentsByContentID(contentID: string, prevContents?: FlowContent[]): Promise<FlowContent[]>;
    getUUIDByContentID(contentID: string): string;
    private static readonly MAX_FOLLOW_UP_DEPTH;
    private getContentsById;
    getStartContents(): Promise<FlowContent[]>;
    getContentsByNode(node: HtNodeWithContent, prevContents?: FlowContent[], depth?: number): Promise<FlowContent[]>;
    getPayloadParams<T extends PayloadParamsBase>(payload: string): T;
    getFlowName(flowId: string): string;
    getRatingSubmittedInfo(payload: string): RatingSubmittedInfo;
    setInShadowing(inShadowing: InShadowingConfig): void;
}
export { FlowBuilderAction } from './action/index';
export { AGENT_RATING_PAYLOAD, EMPTY_PAYLOAD } from './constants';
export * from './content-fields/index';
export { trackFlowContent } from './tracking';
