import { ReactElement } from 'react'; import { Data as EjsData } from 'ejs'; import { ZombiFsOptions } from './zombi'; import { EffectModifier } from './effect'; import { Maybe, Resolveable } from '../types'; export interface TemplateComponent { (props: Template & { children?: (filepath: string, data: T) => EffectModifier | Promise; }): ReactElement | null; } export interface Template extends ZombiFsOptions { name?: Resolveable; source: Resolveable; permission?: Resolveable<'r' | 'rs' | 'sr' | 'r+' | 'rs+' | 'sr+' | 'w' | 'wx' | 'xw' | 'w+' | 'wx+' | 'xw+' | 'a' | 'ax' | 'xa' | 'a+' | 'ax+' | 'xa+', T>; } export interface TemplateSymlinkComponent { (props: TemplateSymlink & { children?: (filepath: string, data: T) => Maybe | Promise>; }): ReactElement | null; } export interface TemplateSymlink extends Omit, 'data'> { } export declare const Template: TemplateComponent & { Symlink: TemplateSymlinkComponent; };