import { overrideKeyReactify } from "../wrappers";
import { YMapGroupEntity } from "../YMapEnities";
/**
 * YMapControl props
 */
export type YMapControlProps = {
    /** Makes the control transparent by removing background color and shadows */
    transparent?: boolean;
};
declare const defaultProps: Readonly<{
    transparent: false;
}>;
type DefaultProps = typeof defaultProps;
/**
 *  DOM wrapper for creating custom controls. Connects the styles required by the control.
 *
 * @example
 * ```javascript
 * const control = new YMapControl();
 * class YMapSomeController extends DomEntity {
 *     _createDom() {
 *         const element = document.createElement('button');
 *         this._updateDom(element, this._props, true);
 *         return element;
 *     }
 *     _updateDom(element, props, init = false) {
 *         element.innerText = props.title;
 *     }
 * }
 * const button = new YMapSomeController({
 *     title: 'Click me!'
 * });
 * control.addChild(button);
 * map.addChild(control);
 * @see [[YMapControlCommonButton]]
 * ```
 *
 * @module YMapControl
 */
export declare class YMapControl extends YMapGroupEntity<YMapControlProps, DefaultProps> {
    static defaultProps: Readonly<{
        transparent: false;
    }>;
    static [overrideKeyReactify]: import("../../reactify/reactify").CustomReactify<YMapControl, import("react").ForwardRefExoticComponent<{
        transparent?: boolean | undefined;
        children?: import("react").ReactNode;
        ref?: import("react").Ref<import("../Entities").GenericEntity<YMapControlProps & {
            controlElement: HTMLElement;
        }, {}, import("../Entities").GenericRootEntity<unknown, {}>>> | undefined;
        key?: import("react").Key | null | undefined;
    }>>;
    private _element?;
    private _innerElement?;
    private _detachDom?;
    private _unwatchThemeContext?;
    constructor(props?: YMapControlProps, element?: HTMLElement);
    protected _createDom(): HTMLElement;
    protected _onAttach(): void;
    protected _onUpdate(props: Partial<YMapControlProps>): void;
    private __watchThemeContext;
    protected _onDetach(): void;
    private _updateTheme;
}
export {};
