/// <reference types="react" />
import { ITesterDisplayProvider } from "../../CommonUI/Testing/ITesterDisplayProvider";
import { EventLog } from "../Event/EventLog";
import { ITestingContext } from "./ITestingContext";
import { TestResultDataType } from "./TestResultDataType";
export interface ITestResultItem {
    type: TestResultDataType;
    itemId: string;
    when: Date;
    isError: boolean;
    result: string | undefined;
}
export declare abstract class BaseTestResultItem implements ITestResultItem {
    abstract type: TestResultDataType;
    when: Date;
    isError: boolean;
    itemId: string;
    result: string | undefined;
    items: ITestResultItem[];
    constructor(itemId: string, result?: string | undefined);
    getParent(): ITestResultItem;
    getItemsForId(id: string, type: TestResultDataType | undefined): ITestResultItem[];
}
export declare abstract class BaseTestResultData extends BaseTestResultItem implements ITestingContext, ITesterDisplayProvider {
    isShowResult: boolean;
    items: ITestResultItem[];
    logs: EventLog[];
    addTestResultItem(item: ITestResultItem): void;
    addLogItem(item: EventLog): void;
    addLogItems(items: EventLog[]): void;
    getDuration(): string;
    findItem(itemId: string): ITestResultItem | undefined;
    render(): JSX.Element | undefined;
    getTabs: (() => {
        ui: JSX.Element;
        name: string;
    }[]) | null;
}
export declare class TestResultData implements ITestingContext {
    items: BaseTestResultData[];
    logs: EventLog[];
    addTestResultItem(item: BaseTestResultData): void;
    addLogItem(item: EventLog): void;
    addLogItems(items: EventLog[]): void;
}
