/// <reference types="node" />
import { Config } from './model';
import ConfigHolder from './ConfigHolder';
import { Arguments } from 'yargs';
import stream from 'stream';
export default class SiteGenerator extends ConfigHolder {
    private dataSource;
    private renderer;
    private generator;
    private eventEmitter;
    private browserSync;
    private args;
    constructor(config: Config, args: Arguments);
    private setupI18n;
    private registerEvents;
    private initRenderer;
    get outputRelativeDirectory(): string;
    get outputDirectory(): string;
    getOutputDirectory(locale?: string): string;
    get postsDirPath(): string;
    private logOutputDir;
    clean(): Promise<void>;
    cleanCache(): Promise<void>;
    cleanPosts(): Promise<void>;
    loadData(): void;
    private _renderTemplates;
    renderTemplates(templateGlob: string, renderFn: (locale?: string) => stream.Transform): Promise<void>;
    generatePages(): Promise<void>;
    generatePosts(): Promise<void>;
    generateTags(): Promise<void>;
    generateTemplates(): Promise<void>;
    generateRssFeed(): Promise<void>;
    generateCss(): Promise<void>;
    copyAssets(): Promise<void>;
    reloadConfig(): void;
    reloadBrowser(): void;
    onServe(): Promise<void>;
    private onUpdateMarkdownPost;
    generateSamplePosts(): Promise<void>;
    prod(): Promise<void>;
    dev(): Promise<void>;
    newDraft(): Promise<void>;
    private runSeries;
    build(): Promise<void>;
    serve(): Promise<void>;
    private wrap;
    private registerTask;
    initTasks(): void;
    run(tasks: string[]): Promise<void>;
}
