import { ElementEntity } from "../InteractiveEntities/ElementEntity";
/**
 * Represents the base input for a dynamic form element.
 */
export declare class BaseInputElement<T> extends ElementEntity {
    /**
     * The response of an input.
     */
    private response?;
    /**
     * Whether the input element is optional or required.
     * */
    private optional?;
    /**
     * Creates a new instance of the BaseInputElement class.
     * @param {string} elementId - The unique identifier of the form element.
     * @param {string} elementType - The type of the form element.
     */
    constructor(elementId: string, elementType: string);
    /**
     * Sets the response of an input.
     */
    setResponse(response: T): void;
    /**
     * Returns the response of an input.
     * @returns {T} The response of an input.
     */
    getResponse(): T | undefined;
    /**
 * Returns whether the element is optional or required.
 * @returns {boolean} Whether the element is optional or required.
 */
    getOptional(): boolean | undefined;
    /**
     * Sets whether the element is optional or required.
     * @param {boolean} optional - Whether the element is optional or required.
     */
    setOptional(optional: boolean | string): void;
    static fromJSON(json: any): ElementEntity;
}
