/** * Template Loader * * Loads workout templates from YAML files in templates directory. */ import { type WorkoutTemplate } from "./template.schema.js"; import type { TemplateRegistry } from "./template.types.js"; /** * Get the default user templates directory path. * * @returns The absolute path to the user templates directory (typically `~/.endurance-coach/workout-templates`) */ export declare function getUserTemplatesDir(): string; /** * Options for loading templates. */ export interface LoadTemplatesOptions { /** * Whether to include user templates from user templates directory. * @default false */ includeUserTemplates?: boolean; /** * Custom user templates directory path. * Defaults to ~/.endurance-coach/workout-templates */ userTemplatesDir?: string; /** * Custom built-in templates directory path. * Defaults to built-in templates directory. */ builtinTemplatesDir?: string; } /** * Load all templates from the templates directory. * * @param templatesDir - Optional custom templates directory (backward compatibility) * @param options - Optional configuration for template loading * * @example * // Load only built-in templates * loadTemplates() * * @example * // Load from custom directory (backward compatible) * loadTemplates("/path/to/templates") * * @example * // Load built-in + user templates * loadTemplates({ includeUserTemplates: true }) * * @example * // Load from custom directories * loadTemplates({ * includeUserTemplates: true, * builtinTemplatesDir: "/path/to/builtin", * userTemplatesDir: "/path/to/user" * }) */ export declare function loadTemplates(templatesDir?: string): TemplateRegistry; export declare function loadTemplates(options?: LoadTemplatesOptions): TemplateRegistry; /** * Load templates from an array of template objects (for testing or embedded templates). */ export declare function loadTemplatesFromArray(templateArray: WorkoutTemplate[]): TemplateRegistry; /** * Get the path to the templates directory. */ export declare function getTemplatesPath(): string;