import type { Meta, StoryObj } from '@storybook/react';
import { OIDField } from './oid-field.js';
/**
 * ## Autocomplete field component
 *
 * `OIDField` is a specialized form component for handling OIDs (Object Identifiers) with advanced
 * autocomplete functionality and built-in validation. It allows users to search and select items intuitively
 * as they type.
 *
 * ### Important configs:
 *
 * **1.`fetchOptionsCallback` (for dynamic autocomplete)**
 * - Executes while the user types in the input field
 * - Receives the user's input text as a parameter
 * - Must return a list of options that match the search criteria
 * - Enables real-time search from APIs, databases, or others external or internal data sources
 *
 * **2.`fetchSelectedOptionCallback` (to update the preview of the selected option)**
 * - Called when the "refresh" button in the preview of the selected option is clicked
 * - Receives the selected option's ID/value as a parameter
 * - Must return the updated details of that specific option or undefined if the option is not found for some reason
 * - As `fetchOptionsCallback` can be used synchronously or asynchronously
 *
 * ### Basic usage example:
 *
 * ```tsx
 * <OIDField
 *   name="object-selector"
 *   label="Select Object"
 *   placeholder="uuid"
 *   variant="withValueTitleAndDescription"
 *
 *   // search options as the user types
 *   fetchOptionsCallback={async (userInput) => {
 *     const results = await searchObjects(userInput)
 *     return results.map(obj => ({
 *       value: obj.id, // unique object ID
 *       title: obj.title, // object title or name
 *       path: obj.path, // object path or location
 *       description: obj.description, // object description or summary
 *       icon: obj.icon // object icon
 *     }))
 *   }}
 *
 *   // get details of a specific option by its ID/value
 *   fetchSelectedOptionCallback={async (objectId) => {
 *     const obj = await getObjectById(objectId)
 *     return {
 *       value: obj.id,
 *       title: obj.title,
 *       path: obj.path,
 *       description: obj.description,
 *       icon: obj.icon
 *     }
 *   }}
 * />
 * ```
 */
declare const meta: Meta<typeof OIDField>;
export default meta;
type Story = StoryObj<typeof OIDField>;
export declare const Default: Story;
export declare const Empty: Story;
export declare const Open: Story;
export declare const Filled: Story;
export declare const WithDifferencesAddition: Story;
export declare const WithDifferencesRemoval: Story;
export declare const WithDifferencesMixed: Story;
//# sourceMappingURL=oid-field.stories.d.ts.map