import { CodeSystemCode, Usage } from '@mesalvo/ts-definitions';
import { FetchSelectorProps } from '../FetchSelector/FetchSelector';
import { SelectDataType } from '../types';
export interface CodeSelectorProps<T extends SelectDataType = any, Multiple extends boolean | undefined = false> extends Omit<FetchSelectorProps<T>, "url" | "multiple"> {
    codeSystemUrl: string;
    endpoint?: string;
    multiple?: Multiple;
    /**
     * Encodes the Code system url into url-friendly format.
     * @default true
     * @see encodeURIComponent
     */
    needsEncoding?: boolean;
    /**
     * Custom function to format how codes are displayed in the dropdown list.
     * By default, it shows "Display Name (code)".
     */
    customDisplayOptionFormat?: (code: CodeSystemCode) => string;
    /**
     * Custom function to format how codes are displayed when selected (in the input field).
     * By default, it shows "Display Name (code)".
     */
    customInputFormat?: (code: CodeSystemCode) => string;
    /**
     * Callback function that returns not only the new code but its usage object (code, codeSystem, version, displayName).
     * @param value - The selected usage or null if no selection.
     */
    onChangeUsage?: (value: null | (Multiple extends true ? Usage[] : Usage)) => void;
}
//# sourceMappingURL=types.d.ts.map