import React from "react";
import { VoidFunc } from "../../../fd-toolbox/functions/internal-getter-setter-functions";
import { VariantProps } from "class-variance-authority";
/**
 * Props of {@link Markdown}
 *
 * Extends {@link https:/cva.style/docs/getting-started/variants VariantProps} of {@link markdownVariants}
 */
export interface MarkdownProps extends VariantProps<typeof markdownVariants> {
    /** Unique element Id used to link textarea, preview, and icons.*/
    id: string;
    /** Label text displayed above the textarea.*/
    label: string;
    /** Indicates whether the field is required.*/
    required?: boolean;
    /** Enables markdown content preview below the input.*/
    showContentPreview?: boolean;
    /** Default value of the markdown text.*/
    value?: string;
    /** Disables user input textarea becomes inactive.*/
    disabled?: boolean;
    /** Makes the textarea read-only content.*/
    readOnly?: boolean;
    /** Skips label animation once during the first render.*/
    skipAnimationOnce?: boolean;
    /** Triggered when markdown text changes.*/
    onChange?: VoidFunc<string>;
    /** Triggered when focus leaves the textarea.*/
    onBlur?: VoidFunc<string>;
    /** Indicates validation error state.*/
    error?: boolean;
}
/**
 * Using {@link https:/cva.style/docs/getting-started/variants class-variance-authority}
 */
export declare const markdownVariants: (props?: {
    variant?: "float" | "bordered";
} & import("class-variance-authority/types").ClassProp) => string;
/**
 * Markdown input component with preview functionality
 *
 * @param MarkdownProps {@link MarkdownProps}
 *
 * @example
 * ```tsx
 *     function MyComponent() {
 *         const [value, setValue] = useState("");
 *
 *         return (
 *             <Markdown
 *                 id="markdown-editor"
 *                 label="Description"
 *                 value={value}
 *                 onChange={setValue}
 *                 showContentPreview={true}
 *                 onBlur={...}
 *                 variant="float"
 *             />
 *         );
 *     }
 * ```
 */
export declare function Markdown({ id, label, showContentPreview, value, disabled, readOnly, skipAnimationOnce, variant, onChange, onBlur, error, required, }: MarkdownProps): React.JSX.Element;
