import React from 'react';
import { History } from 'history';
/**
 * Returns a hash history
 */
export declare function getSilentRouterHistory(): History;
/**
 * Changes document title
 * @TODO Replace with React Helmet
 * @param title
 */
export declare function setDocumentTitle(title: string): void;
/**
 * @param val
 * @return {boolean}
 */
export declare function isReactComponent(val: any): boolean;
/**
 * @param val
 * @return {*|boolean}
 */
export declare function isReactElement(val: any): boolean;
/**
 * @param {React.Element} element
 * @param {constructor} type
 * @return {boolean}
 * @example isElementHasType(tabPanelChild, NavDropdown)
 */
export declare function isElementHasType(element: React.ReactElement<any>, type: any): boolean;
/**
 * Filters empty [null, undefined] children of React component
 * @param {ReactNode} children
 * @returns {React.ReactChild[]}
 */
export declare function cleanEmptyChildren(children: React.ReactNode): React.ReactChild[];
/**
 * @param Component
 * @param container
 * @param params
 */
export declare function mountComponent(Component: React.ReactNode, container: Element, params: any): React.Component<any> | Element | void;
/**
 * @param value
 * @return {boolean}
 */
export declare function isSafeStringValue(value: any): boolean;
export declare let OS: {
    is: {
        mac: boolean;
        win: boolean;
        others: any;
    };
    name: string;
};
/**
 * @param str
 * @return {*}
 */
export declare function fillBrandName(str: string): string;
/**
 * @param prevState
 * @param newState
 * @return {*}
 */
export declare function extendFormState<TObject, TSource>(prevState: TObject, newState: TSource): TObject & TSource;
/**
 * @param prevState
 * @param removedIds
 * @return {*|{}}
 */
export declare function cleanFormState(prevState: object, removedIds: object): object;
export declare function wait(mileSeconds: any): Promise<void>;
export declare function deprecation(Component: React.ReactNode | any, message: string): React.Component;
export declare const filterKeyCodes: (callback: Function, keyCodes?: number[]) => ({ keyCode }: {
    keyCode: any;
}) => void;
export declare const scrollElementIntoView: (element: any) => void;
export declare const stripTags: (string: any) => any;
