import * as RTE from 'fp-ts/lib/ReaderTaskEither'; import * as TE from 'fp-ts/lib/TaskEither'; import * as config from './config'; /** * capabilities * * @since 0.2.0 */ export interface Eff extends TE.TaskEither { } /** * @since 0.2.0 */ export interface MonadFileSystem { readonly getFilenames: (pattern: string) => Eff>; readonly readFile: (path: string) => Eff; readonly writeFile: (path: string, content: string) => Eff; readonly existsFile: (path: string) => Eff; readonly clean: (pattern: string) => Eff; } /** * @since 0.2.0 */ export interface MonadLog { readonly info: (message: string) => Eff; readonly log: (message: string) => Eff; readonly debug: (message: string) => Eff; } /** * @since 0.6.0 */ export interface Env { readonly name: string; readonly homepage: string; readonly config: config.Config; } /** * @since 0.2.0 */ export interface Capabilities extends MonadFileSystem, MonadLog { } /** * @since 0.6.0 */ export interface Context { readonly C: Capabilities; readonly Env: Env; } /** * App effect * * @since 0.2.0 */ export interface Effect extends RTE.ReaderTaskEither { } /** * @since 0.2.0 */ export declare const main: Effect;