///
///
import puppeteer from 'puppeteer';
import { ReadUntilExistsResult } from "./helpers";
import { ComponentScreenshot, ComponentScreenshotOptions, ScreenshotType } from './PuppeteerImageGenerator';
export interface CodeDetails {
code: string;
language: string;
}
export interface ImageDetails {
componentImagePath: string;
altText: string;
}
export interface IGeneratedReadme {
addComponentGeneration(codeDetails: CodeDetails, readme: string, imageDetails: ImageDetails): void;
surroundWith(pre: string | undefined, post: string | undefined): void;
toString(): string;
}
export interface IPuppeteerImageGeneratorWriter {
generateAndWrite(componentScreenshots: Array, puppeteerOptions?: puppeteer.LaunchOptions): Promise;
}
export interface IGeneratedReadmeWriter {
write(generatedReadme: IGeneratedReadme): Promise;
getRelativePath(path: string): string;
}
export interface ImageGenerationDetail {
componentFolderPath: string;
savePath: string;
}
export interface IImageGeneratorFromFile {
generate(imageGenerationDetails: Array): Promise;
}
export declare type ReadmeImageType = Exclude;
export interface ComponentInfo {
codeDetails: CodeDetails;
readme: string;
name: string;
componentScreenshot: ComponentScreenshotOptions & {
type?: 'jpeg' | 'png';
} & {
Component: React.ComponentType;
};
}
export interface IAssetManager {
puppeteerLaunchOptions: puppeteer.LaunchOptions | undefined;
cleanComponentImages(): Promise;
getComponentImagePath(...parts: string[]): string;
readSurroundingReadme(isPre: boolean): Promise;
getComponentInfos(): Promise>;
}
export interface Path {
relative(from: string, to: string): string;
isAbsolute(jsPath: string): boolean;
join(...paths: string[]): string;
exists(path: string): Promise;
extname(file: string): string;
absoluteOrCwdJoin(path: string): string;
}
export interface FS {
writeFileString(path: string, data: string): Promise;
writeFileBuffer(path: string, data: Buffer): Promise;
emptyDir(path: string): Promise;
readUntilExists(...paths: string[]): Promise;
readdir(dir: string): Promise;
readFileString(filePath: string): Promise;
}
export interface ISystem {
path: Path;
fs: FS;
cwd: string;
}
export interface IRequirer {
require(id: string): any;
}
export interface IReactReadme {
exists(folderPath: string): Promise;
read(folderPath: string): T;
}
//# sourceMappingURL=interfaces.d.ts.map