import type { WhatsAppMessageRequest, WhatsAppMessageBuilder, TemplateComponents, LocationHeaderData } from "./types"; /** * Fluent builder for creating complex WhatsApp template messages * * @example * ```typescript * const message = new WhatsAppTemplateBuilder() * .setIntegratedNumber('919876543210') * .setTemplate('order_update', 'en') * .withImageHeader('https://example.com/image.jpg') * .withBodyVariable(1, 'John') * .withBodyVariable(2, 'Order #12345') * .withUrlButton(1, 'track-order') * .addRecipient('919876543211') * .build(); * ``` */ export declare class WhatsAppTemplateBuilder implements WhatsAppMessageBuilder { private integratedNumber; private templateName; private languageCode; private namespace; private recipients; private currentComponents; /** * Set the integrated WhatsApp number */ setIntegratedNumber(number: string): this; /** * Set the template name and optionally the language code */ setTemplate(name: string, languageCode?: string): this; /** * Set the template namespace */ setNamespace(namespace: string): this; /** * Add a recipient with their components. * Call this after setting up components with with* methods. */ addRecipient(to: string | string[], components?: TemplateComponents): this; /** * Set a text header for the current recipient */ withTextHeader(value: string): this; /** * Set an image header for the current recipient */ withImageHeader(url: string): this; /** * Set a video header for the current recipient */ withVideoHeader(url: string): this; /** * Set a document header for the current recipient */ withDocumentHeader(url: string, filename: string): this; /** * Set a location header for the current recipient */ withLocationHeader(location: LocationHeaderData): this; /** * Set a body variable at the specified index (1-based) */ withBodyVariable(index: number, value: string): this; /** * Set a URL button at the specified index (1-based, max 2) */ withUrlButton(index: number, urlVariable: string): this; /** * Set a copy code button at the specified index (1-based, max 2) */ withCopyCodeButton(index: number, couponCode: string): this; /** * Set a carousel card header at the specified index (0-based) */ withCarouselCard(cardIndex: number, mediaType: "image" | "video", url: string): this; /** * Set a catalog button (1-based index, max 2) */ withCatalogButton(index: number, productRetailerId: string): this; /** * Build the final WhatsApp message request * @throws Error if required fields are missing */ build(): WhatsAppMessageRequest; } //# sourceMappingURL=template.builder.d.ts.map