import Browser from '../executors/Browser';
import Reporter, { ReporterProperties } from './Reporter';
import Test from '../Test';
import Suite from '../Suite';
/**
 * The Html reporter displays an HTML report in the browser.
 */
export default class Html extends Reporter implements HtmlProperties {
    readonly executor: Browser;
    document: Document;
    protected _reportContainer: Element;
    protected _reportControls: Element;
    protected _reportNode: Element;
    protected _summaryNode: Element;
    protected _summaryNodes: Element[];
    protected _suiteCount: number;
    protected _testCount: number;
    protected _testsInSuite: number;
    protected _testIndex: number;
    protected _processedTests: any;
    protected _skippedCount: number;
    protected _failCount: number;
    protected _failedFilter: any;
    protected _fragment: DocumentFragment;
    protected _indentLevel: number;
    protected _runningSuites: any;
    constructor(executor: Browser, options?: HtmlOptions);
    protected _generateSummary(suite: Suite): void;
    protected _injectCSS(): void;
    protected _getIndentLevel(node: Element): number;
    /**
     * Set the collapsed state of a node and return the new state.
     *
     * @param {DOMNode} node A suite node
     * @param {boolean} collapsed Set the collapsed state, or toggle if undefined
     */
    protected _setCollapsed(node: Element, collapsed?: boolean): void;
    error(error: Error): void;
    runStart(): void;
    suiteStart(suite: Suite): void;
    suiteEnd(suite: Suite): void;
    testEnd(test: Test): void;
}
export interface HtmlProperties extends ReporterProperties {
    document: Document;
}
export declare type HtmlOptions = Partial<HtmlProperties>;
