import { type BotonicContext } from '@botonic/core';
import { type BotonicButtonContent } from '@botonic/shared';
import type { FlowBuilderApi } from '../api';
import { ContentFieldsBase } from './content-fields-base';
import { FlowWebview } from './flow-webview';
import { HtButton, HtButtonStyle, HtRatingButton } from './hubtype-fields';
interface AddButtonToBotonicProps {
    buttonIndex: number;
    buttonStyle?: HtButtonStyle;
    /** Required when this button opens a webview (typically the full {@link BotonicContext}). */
    botonicContext?: BotonicContext;
}
export declare class FlowButton extends ContentFieldsBase {
    text: string;
    url?: string;
    payload?: string;
    /** Set for Flow Builder rating options — used to order payloads vs CMS storage order. */
    ratingValue?: number;
    target?: string;
    webview?: {
        name: string;
    };
    flowWebview?: FlowWebview;
    params?: Record<string, string>;
    static fromHubtypeCMS(cmsButton: HtButton, locale: string, cmsApi: FlowBuilderApi): FlowButton;
    private static getWebviewParams;
    private static getExitSuccessContentID;
    static fromAIAgent(button: {
        id: string;
        text: string;
        payload?: string;
        url?: string;
        target?: string;
    }): FlowButton;
    static fromRating(button: HtRatingButton): FlowButton;
    static getUrlId(cmsButton: HtButton, locale: string): string | undefined;
    static getTargetWebview(cmsApi: FlowBuilderApi, targetId: string): FlowWebview | undefined;
    trackFlow(botonicContext: BotonicContext): Promise<void>;
    processContent(): Promise<void>;
    addButtonToBotonic({ buttonIndex, buttonStyle: _buttonStyle, botonicContext, }: AddButtonToBotonicProps): BotonicButtonContent;
    private getButtonPayload;
}
export {};
