import * as React from "react";
import { LogLevel, LogParam, TimerHandler } from "@intuitionrobotics/ts-common";
export declare class BaseComponent<P = any, S = any> extends React.Component<P, S> {
    private stateKeysToUpdate?;
    private logger;
    private readonly _componentDidMount;
    private readonly _componentWillUnmount;
    private timeoutMap;
    constructor(props: P);
    debounce(handler: TimerHandler, key: string, ms?: number): void;
    throttle(handler: TimerHandler, key: string, ms?: number): void;
    throttleV2(handler: TimerHandler, key: string, ms: number, force?: boolean): void;
    setStateKeysToUpdate(stateKeysToUpdate?: (keyof S)[]): void;
    shouldComponentUpdate(nextProps: Readonly<P>, nextState: Readonly<S>, nextContext: any): boolean;
    protected logVerbose(...toLog: LogParam[]): void;
    protected logDebug(...toLog: LogParam[]): void;
    protected logInfo(...toLog: LogParam[]): void;
    protected logWarning(...toLog: LogParam[]): void;
    protected logError(...toLog: LogParam[]): void;
    protected log(level: LogLevel, bold: boolean, ...toLog: LogParam[]): void;
    private logImpl;
    static store(key: string, value: string | object): void;
    static load(key: string, defaultValue: string | number | object | undefined): string | number | object | null;
    static getElementId(e: React.BaseSyntheticEvent): string;
    static getImageUrl(_relativePath: string): string;
    static getQueryParameter(name: string): string | undefined;
    static getUrl(): string;
    toString(): string;
}
