import type { BotonicContext } from '@botonic/core';
import type { HtMediaFileLocale, HtNodeLink, HtQueueLocale, HtTextLocale, HtVideoLocale } from './hubtype-fields/index';
import type { FlowContent } from './index';
export declare abstract class ContentFieldsBase {
    readonly id: string;
    code: string;
    followUp?: HtNodeLink;
    constructor(id: string);
    abstract trackFlow(botonicContext: BotonicContext): Promise<void>;
    abstract processContent(botonicContext: BotonicContext): Promise<FlowContent | void>;
    filterContent(botonicContext: BotonicContext, content: FlowContent): Promise<FlowContent>;
    static getTextByLocale(locale: string, text: HtTextLocale[]): string;
    static getAssetByLocale(locale: string, asset: HtMediaFileLocale[]): string;
    static getImageByLocale(locale: string, image: HtMediaFileLocale[]): string;
    static getVideoByLocale(locale: string, video: HtVideoLocale[]): string;
    static getQueueByLocale(locale: string, queues: HtQueueLocale[]): HtQueueLocale | undefined;
    replaceVariables(text: string, botonicContext: BotonicContext): string;
    private static readonly INPUT_ACCESSOR_KEYS;
    getValueFromKeyPath(botonicContext: BotonicContext, keyPath: string): any;
    private resolveObjectKey;
    private camelCase;
    private snakeCase;
    private isValidType;
}
