import React from 'react';
import { FetchArgs, Log } from '../../kit/internal/types';
import { ErrorHandler } from '../../kit/utils/error';
import { ValueOf } from '../../kit/utils/types';
export interface Props<T> {
    decoder: (data: T) => Log;
    handleCloseLogs?: () => void;
    height?: number | 'stretch';
    initialLogs?: T[];
    onDownload?: () => void;
    onFetch?: (config: FetchConfig, type: FetchType) => FetchArgs;
    onError: ErrorHandler;
    serverAddress: (path: string) => string;
    sortKey?: keyof Log;
    title?: React.ReactNode;
}
export interface ViewerLog extends Log {
    formattedTime: string;
}
export interface FetchConfig {
    canceler: AbortController;
    fetchDirection: FetchDirection;
    limit: number;
    offset?: number;
    offsetLog?: Log;
}
export declare const FetchType: {
    readonly Initial: "Initial";
    readonly Newer: "Newer";
    readonly Older: "Older";
    readonly Stream: "Stream";
};
export type FetchType = ValueOf<typeof FetchType>;
export declare const FetchDirection: {
    readonly Newer: "Newer";
    readonly Older: "Older";
};
export type FetchDirection = ValueOf<typeof FetchDirection>;
export declare const ARIA_LABEL_ENABLE_TAILING = "Enable Tailing";
export declare const ARIA_LABEL_SCROLL_TO_OLDEST = "Scroll to Oldest";
export declare const formatLogEntry: (log: Log) => ViewerLog;
declare function LogViewer<T>({ decoder, height, initialLogs, onDownload, onFetch, onError, serverAddress, sortKey, handleCloseLogs, title, }: Props<T>): JSX.Element;
export default LogViewer;
//# sourceMappingURL=LogViewer.d.ts.map