import * as d from '../declarations';
export declare class Compiler implements d.Compiler {
    protected ctx: d.CompilerCtx;
    isValid: boolean;
    config: d.Config;
    queuedRebuild: boolean;
    constructor(compilerConfig: d.Config);
    build(): Promise<d.BuildResults>;
    rebuild(): void;
    private drainBuild;
    queueFsChanges(fsWatchResults: d.FsWatchResults): void;
    startDevServer(): Promise<d.DevServer>;
    on(eventName: 'fsChange', cb: (fsWatchResults?: d.FsWatchResults) => void): Function;
    on(eventName: 'buildNoChange', cb: (buildResults: d.BuildNoChangeResults) => void): Function;
    on(eventName: 'buildLog', cb: (buildResults: d.BuildLog) => void): Function;
    on(eventName: 'buildFinish', cb: (buildResults: d.BuildResults) => void): Function;
    once(eventName: 'buildFinish'): Promise<d.BuildResults>;
    once(eventName: 'buildNoChange'): Promise<d.BuildNoChangeResults>;
    off(eventName: string, cb: Function): void;
    trigger(eventName: 'fileUpdate', path: string): void;
    trigger(eventName: 'fileAdd', path: string): void;
    trigger(eventName: 'fileDelete', path: string): void;
    trigger(eventName: 'dirAdd', path: string): void;
    trigger(eventName: 'dirDelete', path: string): void;
    docs(): Promise<void>;
    readonly fs: d.InMemoryFileSystem;
}
