/**
 * Copyright (c) Microsoft Corporation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type * as channels from '@protocol/channels';
import * as React from 'react';
import './consoleTab.css';
import type { TraceModel } from '@isomorphic/trace/traceModel';
import type { Boundaries } from './geometry';
export type ConsoleEntry = {
    browserMessage?: {
        body: React.JSX.Element[];
        bodyString: string;
        location: string;
    };
    browserError?: channels.SerializedError;
    nodeMessage?: {
        html: string;
    };
    isError: boolean;
    isWarning: boolean;
    timestamp: number;
    repeat: number;
};
type ConsoleTabModel = {
    entries: ConsoleEntry[];
};
export declare function useConsoleTabModel(model: TraceModel | undefined, selectedTime: Boundaries | undefined, pageId?: string): ConsoleTabModel;
export declare const ConsoleTab: React.FunctionComponent<{
    boundaries: Boundaries;
    consoleModel: ConsoleTabModel;
    selectedTime?: Boundaries | undefined;
    onEntryHovered?: (ordinal: number | undefined) => void;
    onAccepted?: (entry: ConsoleEntry) => void;
}>;
export {};
//# sourceMappingURL=consoleTab.d.ts.map