import React, { PropsWithChildren } from 'react';
import { Control as Control } from 'ol/control';
import { Options as OLOptions } from 'ol/control/Control';
import { RlayersBase } from '../REvent';
/**
 * @propsfor RControl
 */
export interface RControlProps extends PropsWithChildren<unknown> {
    /**
     * Optional CSS class name
     */
    className?: string;
    /**
     * Destination element if the control is to be rendered outside the main map element
     */
    target?: React.RefObject<HTMLElement>;
}
export interface RControlOptions extends OLOptions {
    className?: string;
}
/**
 * An abstract class serving as base for all controls, not meant to be used directly
 */
export default class RControlBase<P extends RControlProps, S> extends RlayersBase<P, S> {
    ol: Control;
    constructor(props: Readonly<P>);
    toOLProps(props: P): RControlOptions;
    protected refresh(prevProps?: P): void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): React.JSX.Element;
}
//# sourceMappingURL=RControlBase.d.ts.map