import React from 'react';
import { WithTheme } from '@mui/styles';
import { Theme } from '@mui/material/styles';
import { ISplitsData, ISplitItem } from '../client';
declare type IProps = WithTheme<Theme>;
export interface ISpeedRunState {
    splitsData?: ISplitsData;
    errorMessage?: string;
    width: string | number;
    height: string | number;
}
export declare class SpeedRunAppImpl extends React.Component<IProps, ISpeedRunState> {
    state: ISpeedRunState;
    private client?;
    private containerRef;
    private rowMap;
    private headerRowRefs;
    private maxRows;
    private bottomRows;
    constructor(props: IProps);
    getUserDefinedDimension(num: string): string;
    splitsUpdated(splitsData: ISplitsData): void;
    componentDidMount(): Promise<void>;
    componentWillUnmount(): Promise<void>;
    renderSplitDuration(split: ISplitItem, addMillis?: number): JSX.Element | null;
    renderSplits(): JSX.Element[] | undefined;
    private s;
    getTimerColor(): string;
    renderTime(): JSX.Element | null;
    renderPreviousSegment(): JSX.Element | null;
    renderPersonalBest(): JSX.Element | null;
    renderLogo(): JSX.Element | null;
    render(): JSX.Element | null;
}
export declare const SpeedRunApp: React.JSXElementConstructor<Omit<IProps, "theme"> & Partial<WithTheme<Theme>> & import("@mui/styles").ThemedComponentProps>;
export {};
