import { PropertyMeta } from "../../core/property-meta";
import { ResourceMeta } from "../../core/resource-meta";
import { VoidFunc, VoidFuncNoParam } from "../../../../fd-toolbox/functions/internal-getter-setter-functions";
import React, { ReactNode, RefObject } from "react";
import { WithId } from "../../../../fd-toolbox-core/types/resource-with-id";
import { InputVariants } from "../../../fd-component-toolbox/input/Input";
import { WithOpen } from "../../../../fd-toolbox/types/ref-object";
import { BrowserDisplayMode } from "../../../../fd-toolbox/enums/enums";
/** Props for the {@link MultiBrowser} component. */
export interface MultiBrowserProps {
    /** Whether the browser field is required */
    required?: boolean;
    /** Metadata for the property being browsed */
    propertyMeta: PropertyMeta;
    /** Name of the parent context */
    parentContextName?: string;
    /** Whether the field is in error state (for aria-invalid / styling) */
    invalid?: boolean;
    /**
     * Event handler called when the selected resources change.
     * First parameter: array of selected resources {@link WithId}
     * Second parameter: resource metadata {@link ResourceMeta}
     */
    onChange?: VoidFunc<WithId[], ResourceMeta>;
    /** Event handler called when dialog is closed. */
    onClose?: VoidFuncNoParam;
    /**
     * Display mode of the browser.
     * {@link browserDisplayModes.default} shows the standard browser view.
     * {@link browserDisplayModes.short} shows the compact view.
     */
    displayMode?: BrowserDisplayMode;
    /** Whether the browser is disabled */
    disabled?: boolean;
    /** Whether the browser is read-only */
    readOnly?: boolean;
    /** Id of the resource to which this browser is related */
    relatedResourceId?: string;
    /** Array of pre-selected resource ids */
    selectedResourceIds?: string[];
    /** Event handler called when selected resources have been loaded */
    onSelectedResourceIdsChange?: VoidFunc<string[]>;
    /** Input variant style */
    variant?: InputVariants;
    /** Child elements to render inside the input (typically action buttons) */
    children?: ReactNode;
    ref?: RefObject<WithOpen>;
}
/**
 * Multi-browser component for multiple resource selection with integrated search dialog.
 * Used for one-to-many relationships.
 * {@link MultiBrowserProps} - component props
 */
export declare function MultiBrowser({ required, propertyMeta, onChange, onClose, parentContextName: parentContextNameProp, displayMode, disabled, readOnly, invalid, relatedResourceId, selectedResourceIds, onSelectedResourceIdsChange, variant, children: icons, ref, }: MultiBrowserProps): React.JSX.Element;
