import type { WhatsappTemplateComponentSubType, WhatsappTemplateComponentType, WhatsappTemplateParameterType } from '@botonic/shared';
import type { HtButton } from './button';
import type { HtBaseNode, HtMediaFileLocale } from './common';
import type { HtNodeWithContentType } from './node-types';
export declare const WHATSAPP_TEMPLATE: {
    readonly Buttons: "buttons";
};
type HtWhatsAppTemplateButton = {
    type: WhatsappTemplateComponentSubType.Url;
    text: string;
    url?: string;
    index: number;
} | {
    type: WhatsappTemplateComponentSubType.QuickReply;
    text: string;
    id: string;
    index: number;
} | {
    type: WhatsappTemplateComponentSubType.PhoneNumber;
    text: string;
    phone_number: string;
    index: number;
};
export interface HtWhatsAppTemplateHeaderComponent {
    type: WhatsappTemplateComponentType.Header;
    format: WhatsappTemplateParameterType.Text | WhatsappTemplateParameterType.Image | WhatsappTemplateParameterType.Video;
    text?: string;
    image?: {
        link: string;
    };
    video?: {
        link: string;
    };
}
export interface HtWhatsAppTemplateBodyComponent {
    type: WhatsappTemplateComponentType.Body;
    text: string;
}
export interface HtWhatsAppTemplateFooterComponent {
    type: WhatsappTemplateComponentType.Footer;
    text: string;
}
export interface HtWhatsAppTemplateButtonsComponent {
    type: typeof WHATSAPP_TEMPLATE.Buttons;
    buttons: HtWhatsAppTemplateButton[];
}
export type HtWhatsAppTemplateComponent = HtWhatsAppTemplateHeaderComponent | HtWhatsAppTemplateBodyComponent | HtWhatsAppTemplateFooterComponent | HtWhatsAppTemplateButtonsComponent;
export interface HtWhatsAppTemplate {
    id: string;
    name: string;
    language: string;
    status: string;
    category: string;
    components: HtWhatsAppTemplateComponent[];
    namespace: string;
    parameter_format: string;
}
export interface HtWhatsappTemplateContentByLocale {
    template: HtWhatsAppTemplate;
    header_variables?: {
        type: WhatsappTemplateParameterType;
        text?: Record<string, string>;
        media?: HtMediaFileLocale[];
    };
    variable_values: Record<string, string>;
    url_variable_values?: Record<string, string>;
}
export interface HtWhatsappTemplateNode extends HtBaseNode {
    type: HtNodeWithContentType.WHATSAPP_TEMPLATE;
    content: {
        by_locale: Record<string, HtWhatsappTemplateContentByLocale>;
        buttons: HtButton[];
    };
}
export {};
