import type { StxOptions } from './types';
/**
 * Render a single STX template to HTML
 */
export declare function renderView(templatePath: string, props?: Record<string, unknown>, options?: Partial<StxOptions>): Promise<string>;
/**
 * Build all views in a directory
 */
export declare function buildViews(options: ViewBuildOptions): Promise<BuildResult>;
/**
 * Watch views directory and rebuild on changes
 */
export declare function watchViews(options: ViewBuildOptions, callback?: (result: BuildResult) => void): { close: () => void };
/**
 * Render a .stx email template to an email-ready HTML string
 *
 * Optimized for email rendering:
 * - Disables SEO tag injection
 * - Inlines utility classes as style attributes (via Crosswind)
 * - Strips <style> and <script> blocks
 * - Returns clean HTML + plain text suitable for email
 *
 * @example
 * ```typescript
 * const { html, text } = await renderEmail('resources/emails/welcome.stx', {
 *   userName: 'John',
 *   unsubscribeUrl: 'https://example.com/unsubscribe?token=abc',
 * })
 * ```
 */
export declare function renderEmail(templatePath: string, props?: Record<string, unknown>, options?: Partial<StxOptions>): Promise<{ html: string, text: string }>;
export declare interface ViewBuildOptions {
  viewsDir: string
  outputDir: string
  componentsDir?: string
  layoutsDir?: string
  partialsDir?: string
  globalProps?: Record<string, unknown>
  placeholders?: Record<string, string>
  views?: ViewConfig[]
  debug?: boolean
  generateManifest?: boolean
}
export declare interface ViewConfig {
  input: string
  output?: string
  props?: Record<string, unknown>
}
export declare interface BuildResult {
  success: boolean
  views: string[]
  errors: Array<{ file: string; error: string }>
  duration: number
}
// Default export for convenience
export default buildViews;
