import * as TE from 'fp-ts/TaskEither';

interface Source {
    readonly name: string;
    readonly svg: string;
    readonly code: string;
}
interface Sources {
    readonly entryPoint: string;
    readonly entries: Source[];
}
interface MetaIcon {
    name: string;
    repository: string;
    clonePath: string;
    iconPath: string;
    sources: Sources[];
    sourcePath: string;
}
type BuildOptions = Omit<MetaIcon, "sources"> & {
    snapshot?: string;
    entryPoints: boolean;
};
interface PrepackOptions {
    removeDevDeps?: boolean;
    addPeerDeps: string[];
    addScripts: string[];
}

declare const buildFlow: (ma: TE.TaskEither<Error, MetaIcon>) => TE.TaskEither<Error, MetaIcon>;
declare const build: (options: BuildOptions) => TE.TaskEither<Error, MetaIcon>;

type InitOptions = Omit<MetaIcon, "sources" | "sourcePath" | "clonePath">;
declare const init: (options: InitOptions) => void;

export { BuildOptions, InitOptions, MetaIcon, PrepackOptions, Source, Sources, build, buildFlow, init };
