/**
 * DateRangePicker Molecule Component
 *
 * Two date inputs plus an optional preset row. Emits `{ from, to }` ISO
 * strings on the event bus whenever the range changes. Falls back to a
 * standard callback for direct consumers.
 *
 * Bus contract: caller passes `event` prop with a string key; the molecule
 * emits `UI:{event}` with `{ from, to }` as the payload — mirrors the
 * FilterGroup / MapView / DataGrid pattern.
 */
import React from 'react';
import type { EventEmit } from '@almadar/core';
export interface DateRangePickerPreset {
    /** Display label (e.g. "Last 30 days"). */
    label: string;
    /** Stable key used for highlighting the active preset. */
    value: string;
    /** Returns `{ from, to }` as ISO date strings (YYYY-MM-DD). */
    range: () => {
        from: string;
        to: string;
    };
}
export interface DateRangePickerProps {
    /** Controlled `from` (ISO date YYYY-MM-DD). */
    from?: string;
    /** Controlled `to` (ISO date YYYY-MM-DD). */
    to?: string;
    /**
     * Event name emitted as `UI:{event}` with payload `{ from, to }`.
     * Optional — when omitted, only the `onChange` callback fires.
     */
    event?: EventEmit<{
        from: string;
        to: string;
    }>;
    /** Callback fired alongside the bus emit. */
    onChange?: (range: {
        from: string;
        to: string;
    }) => void;
    /**
     * Preset shortcuts. Defaults to the standard finance set
     * (Last 7d / Last 30d / This Month / This Quarter / YTD).
     * Pass an empty array to hide presets entirely.
     */
    presets?: DateRangePickerPreset[];
    /** From-input label. */
    fromLabel?: string;
    /** To-input label. */
    toLabel?: string;
    /** Additional CSS classes. */
    className?: string;
}
export declare const DateRangePicker: React.FC<DateRangePickerProps>;
