import * as fsTreeUtils from 'fs-tree-utils'; import Tree = fsTreeUtils.Tree; export declare type PromiseFunc = (x: X) => Promise; export declare type SyncFunc = (x: X) => Y; export declare type SetupFunc = () => Promise; export declare type TeardownFunc = (x: X) => Promise; export declare type CalledFunc = PromiseFunc; export declare type SyncCalledFunc = SyncFunc; export declare type Tester = () => Promise; export declare type AsyncTesterFactory = (fn: CalledFunc) => Tester; export declare type SyncTesterFactory = (fn: SyncCalledFunc) => Tester; export interface Config { readonly setup: SetupFunc; readonly teardown: TeardownFunc; } export declare type TesterFactory = AsyncTesterFactory & { forAsync: AsyncTesterFactory; forSync: SyncTesterFactory; }; export declare namespace base { function createFactory({ setup, teardown }: Config): TesterFactory; } export declare const createFactory: typeof base.createFactory; export declare namespace virtualEnvironment { interface Info { readonly tree: Tree.Write.Node; readonly container: string; readonly previousWorkingDirectory: string; } function createFactory(tree: Tree.Write.Node, container?: string): { info: Info; apply: TesterFactory; }; } export default createFactory;