/** * Klaviyo API * The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details. * * Contact: developers@klaviyo.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { AxiosResponse } from "axios"; import { GetTemplateDndResponse } from '../model/getTemplateDndResponse'; import { GetTemplateDndResponseCollection } from '../model/getTemplateDndResponseCollection'; import { GetUniversalContentResponse } from '../model/getUniversalContentResponse'; import { GetUniversalContentResponseCollection } from '../model/getUniversalContentResponseCollection'; import { PatchTemplateDndResponse } from '../model/patchTemplateDndResponse'; import { PatchUniversalContentResponse } from '../model/patchUniversalContentResponse'; import { PostTemplateDndResponse } from '../model/postTemplateDndResponse'; import { PostTemplateResponse } from '../model/postTemplateResponse'; import { PostUniversalContentResponse } from '../model/postUniversalContentResponse'; import { TemplateCloneQuery } from '../model/templateCloneQuery'; import { TemplateCreateHtmlOrDndQuery } from '../model/templateCreateHtmlOrDndQuery'; import { TemplateRenderQuery } from '../model/templateRenderQuery'; import { TemplateUpdateHtmlOrDndQuery } from '../model/templateUpdateHtmlOrDndQuery'; import { UniversalContentCreateQuery } from '../model/universalContentCreateQuery'; import { UniversalContentPartialUpdateQuery } from '../model/universalContentPartialUpdateQuery'; import { Session } from './apis'; export declare class TemplatesApi { session: Session; protected _basePath: string; protected _defaultHeaders: any; protected _useQuerystring: boolean; constructor(session: Session); set useQuerystring(value: boolean); set basePath(basePath: string); set defaultHeaders(defaultHeaders: any); get defaultHeaders(): any; get basePath(): string; /** * Create a clone of a template with the given template ID. If there are 1,000 or more templates in an account, cloning will fail as there is a limit of 1,000 templates that can be created via the API.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:write` * @summary Clone Template * @param templateCloneQuery */ cloneTemplate(templateCloneQuery: TemplateCloneQuery): Promise<{ response: AxiosResponse; body: PostTemplateResponse; }>; /** * Create a new HTML or drag-and-drop template. If there are 1,000 or more templates in an account, creation will fail as there is a limit of 1,000 templates that can be created via the API. Request specific fields using [sparse fieldsets](https://developers.klaviyo.com/en/reference/api_overview#sparse-fieldsets).

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:write` * @summary Create Template * @param templateCreateHtmlOrDndQuery * @param additionalFieldsTemplate Request additional fields not included by default in the response. Supported values: \'definition\' */ createTemplate(templateCreateHtmlOrDndQuery: TemplateCreateHtmlOrDndQuery, options?: { additionalFieldsTemplate?: Array<'definition'>; }): Promise<{ response: AxiosResponse; body: PostTemplateDndResponse; }>; /** * Create universal content. Currently supported block types are: `button`, `drop_shadow`, `horizontal_rule`, `html`, `image`, `spacer`, and `text`.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:write` * @summary Create Universal Content * @param universalContentCreateQuery Create a template universal content */ createUniversalContent(universalContentCreateQuery: UniversalContentCreateQuery): Promise<{ response: AxiosResponse; body: PostUniversalContentResponse; }>; /** * Delete a template with the given template ID.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:write` * @summary Delete Template * @param id The ID of template */ deleteTemplate(id: string): Promise<{ response: AxiosResponse; body?: any; }>; /** * Delete the universal content with the given ID.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:write` * @summary Delete Universal Content * @param id The ID of the template universal content */ deleteUniversalContent(id: string): Promise<{ response: AxiosResponse; body?: any; }>; /** * Get all universal content in an account.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:read` * @summary Get All Universal Content * @param fieldsTemplateUniversalContent For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets* @param filter For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`, `equals`<br>`name`: `any`, `equals`<br>`created`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`definition.content_type`: `equals`<br>`definition.type`: `equals`* @param pageCursor For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination* @param pageSize Default: 20. Min: 1. Max: 100.* @param sort For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting */ getAllUniversalContent(options?: { fieldsTemplateUniversalContent?: Array<'created' | 'definition' | 'definition.content_type' | 'definition.data' | 'definition.data.content' | 'definition.data.display_options' | 'definition.data.display_options.content_repeat' | 'definition.data.display_options.content_repeat.item_alias' | 'definition.data.display_options.content_repeat.repeat_for' | 'definition.data.display_options.show_on' | 'definition.data.display_options.visible_check' | 'definition.data.styles' | 'definition.data.styles.background_color' | 'definition.data.styles.block_background_color' | 'definition.data.styles.block_border_color' | 'definition.data.styles.block_border_style' | 'definition.data.styles.block_border_width' | 'definition.data.styles.block_padding_bottom' | 'definition.data.styles.block_padding_left' | 'definition.data.styles.block_padding_right' | 'definition.data.styles.block_padding_top' | 'definition.data.styles.color' | 'definition.data.styles.extra_css_class' | 'definition.data.styles.font_family' | 'definition.data.styles.font_size' | 'definition.data.styles.font_style' | 'definition.data.styles.font_weight' | 'definition.data.styles.inner_padding_bottom' | 'definition.data.styles.inner_padding_left' | 'definition.data.styles.inner_padding_right' | 'definition.data.styles.inner_padding_top' | 'definition.data.styles.letter_spacing' | 'definition.data.styles.line_height' | 'definition.data.styles.mobile_stretch_content' | 'definition.data.styles.text_align' | 'definition.data.styles.text_decoration' | 'definition.data.styles.text_table_layout' | 'definition.type' | 'name' | 'screenshot_status' | 'screenshot_url' | 'updated'>; filter?: string; pageCursor?: string; pageSize?: number; sort?: 'created' | '-created' | 'id' | '-id' | 'name' | '-name' | 'updated' | '-updated'; }): Promise<{ response: AxiosResponse; body: GetUniversalContentResponseCollection; }>; /** * Get a template with the given template ID.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:read` * @summary Get Template * @param id The ID of template * @param additionalFieldsTemplate Request additional fields not included by default in the response. Supported values: \'definition\'* @param fieldsTemplate For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets */ getTemplate(id: string, options?: { additionalFieldsTemplate?: Array<'definition'>; fieldsTemplate?: Array<'amp' | 'created' | 'definition' | 'definition.body' | 'definition.body.id' | 'definition.body.properties' | 'definition.body.properties.css_class' | 'definition.body.properties.id' | 'definition.body.sections' | 'definition.body.styles' | 'definition.body.styles.background_color' | 'definition.body.styles.width' | 'definition.id' | 'definition.styles' | 'definition.template_id' | 'editor_type' | 'html' | 'name' | 'text' | 'updated'>; }): Promise<{ response: AxiosResponse; body: GetTemplateDndResponse; }>; /** * Get all templates in an account. Use `additional-fields[template]=definition` to include the full template definition for SYSTEM_DRAGGABLE templates.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:read` * @summary Get Templates * @param additionalFieldsTemplate Request additional fields not included by default in the response. Supported values: \'definition\'* @param fieldsTemplate For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets* @param filter For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`, `equals`<br>`name`: `any`, `contains`, `equals`<br>`created`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`updated`: `equals`, `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`* @param pageCursor For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination* @param sort For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting */ getTemplates(options?: { additionalFieldsTemplate?: Array<'definition'>; fieldsTemplate?: Array<'amp' | 'created' | 'definition' | 'definition.body' | 'definition.body.id' | 'definition.body.properties' | 'definition.body.properties.css_class' | 'definition.body.properties.id' | 'definition.body.sections' | 'definition.body.styles' | 'definition.body.styles.background_color' | 'definition.body.styles.width' | 'definition.id' | 'definition.styles' | 'definition.template_id' | 'editor_type' | 'html' | 'name' | 'text' | 'updated'>; filter?: string; pageCursor?: string; sort?: 'created' | '-created' | 'id' | '-id' | 'name' | '-name' | 'updated' | '-updated'; }): Promise<{ response: AxiosResponse; body: GetTemplateDndResponseCollection; }>; /** * Get the universal content with the given ID.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:read` * @summary Get Universal Content * @param id The ID of the universal content * @param fieldsTemplateUniversalContent For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets */ getUniversalContent(id: string, options?: { fieldsTemplateUniversalContent?: Array<'created' | 'definition' | 'definition.content_type' | 'definition.data' | 'definition.data.content' | 'definition.data.display_options' | 'definition.data.display_options.content_repeat' | 'definition.data.display_options.content_repeat.item_alias' | 'definition.data.display_options.content_repeat.repeat_for' | 'definition.data.display_options.show_on' | 'definition.data.display_options.visible_check' | 'definition.data.styles' | 'definition.data.styles.background_color' | 'definition.data.styles.block_background_color' | 'definition.data.styles.block_border_color' | 'definition.data.styles.block_border_style' | 'definition.data.styles.block_border_width' | 'definition.data.styles.block_padding_bottom' | 'definition.data.styles.block_padding_left' | 'definition.data.styles.block_padding_right' | 'definition.data.styles.block_padding_top' | 'definition.data.styles.color' | 'definition.data.styles.extra_css_class' | 'definition.data.styles.font_family' | 'definition.data.styles.font_size' | 'definition.data.styles.font_style' | 'definition.data.styles.font_weight' | 'definition.data.styles.inner_padding_bottom' | 'definition.data.styles.inner_padding_left' | 'definition.data.styles.inner_padding_right' | 'definition.data.styles.inner_padding_top' | 'definition.data.styles.letter_spacing' | 'definition.data.styles.line_height' | 'definition.data.styles.mobile_stretch_content' | 'definition.data.styles.text_align' | 'definition.data.styles.text_decoration' | 'definition.data.styles.text_table_layout' | 'definition.type' | 'name' | 'screenshot_status' | 'screenshot_url' | 'updated'>; }): Promise<{ response: AxiosResponse; body: GetUniversalContentResponse; }>; /** * Render a template with the given template ID and context attribute. Returns the AMP, HTML, and plain text versions of the email template. **Request body parameters** (nested under `attributes`): * `return_fields`: Request specific fields using [sparse fieldsets](https://developers.klaviyo.com/en/reference/api_overview#sparse-fieldsets). * `context`: This is the context your email template will be rendered with. You must pass in a `context` object as a JSON object. Email templates are rendered with contexts in a similar manner to Django templates. Nested template variables can be referenced via dot notation. Template variables without corresponding `context` values are treated as `FALSE` and output nothing. Ex. `{ \"name\" : \"George Washington\", \"state\" : \"VA\" }`

*Rate limits*:
Burst: `3/s`
Steady: `60/m` **Scopes:** `templates:read` * @summary Render Template * @param templateRenderQuery */ renderTemplate(templateRenderQuery: TemplateRenderQuery): Promise<{ response: AxiosResponse; body: PostTemplateResponse; }>; /** * Update a template with the given template ID.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:write` * @summary Update Template * @param id The ID of template* @param templateUpdateHtmlOrDndQuery * @param additionalFieldsTemplate Request additional fields not included by default in the response. Supported values: \'definition\' */ updateTemplate(id: string, templateUpdateHtmlOrDndQuery: TemplateUpdateHtmlOrDndQuery, options?: { additionalFieldsTemplate?: Array<'definition'>; }): Promise<{ response: AxiosResponse; body: PatchTemplateDndResponse; }>; /** * Update universal content. The `definition` field can only be updated on the following block types at this time: `button`, `drop_shadow`, `horizontal_rule`, `html`, `image`, `spacer`, and `text`.

*Rate limits*:
Burst: `75/s`
Steady: `750/m` **Scopes:** `templates:write` * @summary Update Universal Content * @param id The ID of the template universal content* @param universalContentPartialUpdateQuery Update a universal content by ID */ updateUniversalContent(id: string, universalContentPartialUpdateQuery: UniversalContentPartialUpdateQuery): Promise<{ response: AxiosResponse; body: PatchUniversalContentResponse; }>; } export interface TemplatesApi { /** * Alias of {@link TemplatesApi.cloneTemplate} * * @deprecated Use {@link TemplatesApi.cloneTemplate} instead */ createTemplateClone: typeof TemplatesApi.prototype.cloneTemplate; } export interface TemplatesApi { /** * Alias of {@link TemplatesApi.createUniversalContent} * * @deprecated Use {@link TemplatesApi.createUniversalContent} instead */ createTemplateUniversalContent: typeof TemplatesApi.prototype.createUniversalContent; } export interface TemplatesApi { /** * Alias of {@link TemplatesApi.deleteUniversalContent} * * @deprecated Use {@link TemplatesApi.deleteUniversalContent} instead */ deleteTemplateUniversalContent: typeof TemplatesApi.prototype.deleteUniversalContent; } export interface TemplatesApi { /** * Alias of {@link TemplatesApi.getAllUniversalContent} * * @deprecated Use {@link TemplatesApi.getAllUniversalContent} instead */ getTemplateUniversalContent: typeof TemplatesApi.prototype.getAllUniversalContent; } export interface TemplatesApi { /** * Alias of {@link TemplatesApi.renderTemplate} * * @deprecated Use {@link TemplatesApi.renderTemplate} instead */ createTemplateRender: typeof TemplatesApi.prototype.renderTemplate; } export interface TemplatesApi { /** * Alias of {@link TemplatesApi.updateUniversalContent} * * @deprecated Use {@link TemplatesApi.updateUniversalContent} instead */ updateTemplateUniversalContent: typeof TemplatesApi.prototype.updateUniversalContent; }