import { type ComponentProps } from "react";
import { FormattedMessage } from "react-intl";
import { type IAlignPoint } from "@gooddata/sdk-ui-kit";
import { type IVisualizationProperties } from "../../interfaces/Visualization.js";
export interface IInputControlProps {
    valuePath: string;
    properties?: IVisualizationProperties;
    labelText?: string;
    value?: string;
    placeholder?: string;
    type?: string;
    max?: number;
    min?: number;
    step?: number;
    disabled?: boolean;
    showDisabledMessage?: boolean;
    disabledMessageId?: string;
    hasWarning?: boolean;
    disabledMessageAlignPoints?: IAlignPoint[];
    pushData?(data: any): void;
    validateAndPushDataCallback?(value: string): void;
    maxLength?: number;
    description?: string;
    descriptionValues?: ComponentProps<typeof FormattedMessage>["values"];
    /**
     * Optional function to validate the input value.
     * If the value is considered as invalid, it won't be set and emitted,
     * and last valid value will be used instead.
     *
     * @param value - the value to validate
     * @returns true if the value is valid, false otherwise
     */
    validateFn?: (value: string) => boolean;
    /**
     * Optional function to transform the input value, before it's sent via pushData callback.
     * This callback will be called only for valid values (see validateFn property).
     *
     * @param value - the value to transform
     * @returns the transformed value
     */
    transformFn?: (value: string) => string;
}
export interface IInputControlState {
    value?: string;
    lastSentValue?: string;
}
export declare function InputControl({ valuePath, properties, labelText, value: propValue, placeholder, type, disabled, showDisabledMessage, disabledMessageId, hasWarning, disabledMessageAlignPoints, pushData, maxLength, description, descriptionValues, validateFn, transformFn, }: IInputControlProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=InputControl.d.ts.map