import type { DateRangePickerProps } from './types';
import { type DateFormat } from '../JsonSchemaForm/utils/dateFormats';
/**
 * Special value to represent "Present" (ongoing/no end date) in form data and UI display.
 *
 * WHY THIS EXISTS:
 * - DateRangePicker (standalone) uses `null` for "Present" (semantic, clean API)
 * - Form schemas with type: "string" reject `null` (validation error: "must be string")
 * - This magic string allows validation to pass while preserving the "Present" meaning
 *
 * DATA FLOW:
 * - Form → Bridge: end can be PRESENT_VALUE
 * - Bridge → Picker: PRESENT_VALUE becomes null
 * - Picker → Bridge: null (user clicked "Present") comes back
 * - Bridge → Form: null becomes PRESENT_VALUE for storage
 *
 * USAGE:
 * - Form storage: Used in form data to represent "Present" end date
 * - UI display: Used as display text shown to users when "Present" is selected
 */
export declare const PRESENT_VALUE = "Present";
/**
 * Form-side shape: **start** / **end** strings in **`outputFormat`**; **end** may be **`PRESENT_VALUE`**
 * when the user chose **Present** (maps to **`null`** inside **DateRangePicker**).
 */
export type DateRangePickerFormBridgeValue = {
    /** Start date string (e.g. ISO in **outputFormat**) */
    start?: string;
    /** End date string, or **`PRESENT_VALUE`** for open-ended range */
    end?: string | typeof PRESENT_VALUE;
};
/**
 * Props for **DateRangePickerFormBridge** — adapter between string-based forms and **DateRangePicker**.
 *
 * - Keeps **DateRangePicker** on **inputFormat** and **`null`** for Present
 * - Converts **outputFormat** storage ↔ display **inputFormat**
 * - Used by **DateRangeField** (RJSF) and similar builders
 */
export type DateRangePickerFormBridgeProps = Omit<DateRangePickerProps, 'defaultValue' | 'value' | 'onChange'> & {
    /** Form value: dates in outputFormat, end can be PRESENT_VALUE for "Present" */
    value?: DateRangePickerFormBridgeValue;
    /** Fallback when value is empty (e.g. from ui:options.defaultValue) */
    defaultValue?: DateRangePickerFormBridgeValue;
    /** Called with form shape: dates in outputFormat, end is PRESENT_VALUE when "Present" */
    onChange?: (value: DateRangePickerFormBridgeValue) => void;
    /** Format used to parse value (form storage), e.g. 'yyyy-MM-dd' */
    outputFormat: string;
    /** Format used for display in the picker, e.g. 'dd/mm/yyyy' */
    inputFormat: DateFormat;
};
/**
 * Wraps **DateRangePicker** with an internal **FormProvider** and converts between
 * **`outputFormat`** (form storage) and **`inputFormat`** (picker display). Maps **`null`** ↔
 * **`PRESENT_VALUE`** for the end date only.
 *
 * @category Components
 * @subcategory Form Controls
 *
 * @example
 * ```tsx
 * <DateRangePickerFormBridge
 *   name="contract"
 *   outputFormat="yyyy-MM-dd"
 *   inputFormat="mm/dd/yyyy"
 *   value={{ start: '2024-01-01', end: 'Present' }}
 *   onChange={(v) => save(v)}
 * />
 * ```
 */
export declare const DateRangePickerFormBridge: ({ value, defaultValue: defaultValueProp, onChange, outputFormat, inputFormat: inputFormatProp, ...pickerProps }: DateRangePickerFormBridgeProps) => import("@emotion/react/jsx-runtime").JSX.Element;
