/** * Telegraph Page Templates * Pre-built templates for common page types */ import type { Node } from './types.js'; /** * Template field definition */ export interface TemplateField { /** Field name */ name: string; /** Field description */ description: string; /** Whether field is required */ required: boolean; /** Field type */ type: 'string' | 'string[]'; } /** * Template definition */ export interface Template { /** Template name */ name: string; /** Template description */ description: string; /** Template fields */ fields: TemplateField[]; /** Generate content from data */ generate: (data: Record) => string; } /** * Available templates */ export declare const templates: Record; /** * Get a template by name * * @param name - Template name * @returns Template object or undefined if not found * * @example * ```typescript * const template = getTemplate('blog_post'); * if (template) { * console.log(template.description); * console.log(template.fields); * } * ``` */ export declare function getTemplate(name: string): Template | undefined; /** * List all available templates * * @returns Array of template metadata * * @example * ```typescript * const allTemplates = listTemplates(); * allTemplates.forEach(t => { * console.log(`${t.name}: ${t.description}`); * console.log('Fields:', t.fields.map(f => f.name).join(', ')); * }); * ``` */ export declare function listTemplates(): Array<{ name: string; description: string; fields: TemplateField[]; }>; /** * Create Telegraph content from a template * * @param templateName - Name of the template to use * @param data - Data to populate the template * @returns Array of Telegraph Node objects * * @example * ```typescript * const content = createFromTemplate('blog_post', { * title: 'My First Post', * intro: 'This is the introduction...', * sections: [ * { heading: 'Section 1', content: 'Content for section 1' }, * { heading: 'Section 2', content: 'Content for section 2' } * ], * conclusion: 'Thanks for reading!' * }); * * // Use with Telegraph client * await telegraph.createPage({ * accessToken: 'token', * title: 'My First Post', * content: content * }); * ``` */ export declare function createFromTemplate(templateName: string, data: Record): Node[]; //# sourceMappingURL=templates.d.ts.map