import { HexColorStyling, NumericStyling, TerraDrawAdapterStyling } from "../../common";
import { BaseModeOptions, CustomStyling, ModeTypes, TerraDrawBaseDrawMode } from "../base.mode";
import { BehaviorConfig } from "../base.behavior";
import { GeoJSONStoreFeatures } from "../../terra-draw";
import { StoreValidation } from "../../store/store";
type RenderModeStyling = {
    pointColor: HexColorStyling;
    pointWidth: NumericStyling;
    pointOutlineColor: HexColorStyling;
    pointOutlineWidth: NumericStyling;
    polygonFillColor: HexColorStyling;
    polygonFillOpacity: NumericStyling;
    polygonOutlineColor: HexColorStyling;
    polygonOutlineWidth: NumericStyling;
    lineStringWidth: NumericStyling;
    lineStringColor: HexColorStyling;
    zIndex: NumericStyling;
};
interface TerraDrawRenderModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
    modeName?: string;
    styles: Partial<T>;
}
export declare class TerraDrawRenderMode extends TerraDrawBaseDrawMode<RenderModeStyling> {
    type: ModeTypes;
    mode: string;
    constructor(options: TerraDrawRenderModeOptions<RenderModeStyling>);
    updateOptions(options?: TerraDrawRenderModeOptions<RenderModeStyling> | undefined): void;
    /** @internal */
    registerBehaviors(behaviorConfig: BehaviorConfig): void;
    /** @internal */
    start(): void;
    /** @internal */
    stop(): void;
    /** @internal */
    onKeyUp(): void;
    /** @internal */
    onKeyDown(): void;
    /** @internal */
    onClick(): void;
    /** @internal */
    onDragStart(): void;
    /** @internal */
    onDrag(): void;
    /** @internal */
    onDragEnd(): void;
    /** @internal */
    onMouseMove(): void;
    /** @internal */
    cleanUp(): void;
    /** @internal */
    styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
    validateFeature(feature: unknown): StoreValidation;
}
export {};
