rules: {
    lifelike: (<T>(p: PixelManipulator<T>, pattern: string, loop?: boolean) => ElementDataUnknown<T>);
    wolfram: (<T>(p: PixelManipulator<T>, pattern: string, loop?: boolean) => ElementDataUnknown<T>);
} = ...

Template generators for your elements.

Type declaration