import React, { ReactNode } from 'react';
import { WithYMapsProps } from '../hocs/withYMaps';
import { IClustererOptions } from 'yandex-maps';
import { AnyFunction, AnyObject, WithInstanceRef } from '../util/typing';
import { ErrorBoundaryProps } from '../hocs/with-error-boundary';
interface ClusterProps {
  /** Clusterer [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Clusterer-docpage/) */
  options?: IClustererOptions;
  /** Uncontrolled Clusterer [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Clusterer-docpage/) */
  defaultOptions?: IClustererOptions;
  instanceRef?: AnyFunction;
  ymaps?: typeof ymaps;
  parent?: AnyObject;
  children?: ReactNode;
}
export declare class Clusterer extends React.Component<
  ClusterProps &
    WithYMapsProps &
    WithInstanceRef &
    ErrorBoundaryProps &
    AnyObject
> {
  constructor();
  componentDidMount(): void;
  componentDidUpdate(prevProps: any): void;
  componentWillUnmount(): void;
  render(): JSX.Element;
  static mountObject(Clusterer: any, props: any): any;
  static updateObject(instance: any, oldProps: any, newProps: any): void;
  static unmountObject(instance: any, props: any): void;
}
declare const _default: React.FC<
  React.PropsWithChildren<AnyObject & ErrorBoundaryProps>
>;
export default _default;
