import { AxiosInstance } from 'axios'; import { TemplateComponent } from '../messages.types'; export type TemplateCategory = 'AUTHENTICATION' | 'MARKETING' | 'UTILITY'; export type TemplateStatus = 'APPROVED' | 'PENDING' | 'REJECTED' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL'; export interface MessageTemplateSummary { id: string; name: string; language: string; status: TemplateStatus; category: TemplateCategory; components?: unknown[]; } export interface CreateTemplateInput { name: string; language: string; category: TemplateCategory; components: Record[]; message_send_ttl_seconds?: number; } export interface TemplatesApi { list(params?: { limit?: number; after?: string; status?: TemplateStatus; name?: string; }): Promise<{ data: MessageTemplateSummary[]; after?: string; }>; get(templateId: string, fields?: string[]): Promise; create(input: CreateTemplateInput): Promise<{ id: string; status: TemplateStatus; category: TemplateCategory; }>; update(templateId: string, components: Record[]): Promise<{ success: boolean; }>; delete(params: { name: string; hsmId?: string; }): Promise<{ success: boolean; }>; namespace(): Promise; } export declare const authTemplateComponents: (otpCode: string, buttonIndex?: string) => TemplateComponent[]; export declare const createTemplatesApi: (client: AxiosInstance, wabaId: string | undefined) => TemplatesApi;