import React, { ReactNode } from 'react';
import { IconProps } from '../../../icon/interfaces';
import { BaseComponentProps } from '../../base-component';
interface BaseOption {
    value?: string;
    label?: string;
    labelContent?: React.ReactNode;
    lang?: string;
    description?: string;
    disabled?: boolean;
    disabledReason?: string;
    labelTag?: string;
    tags?: ReadonlyArray<string>;
    filteringTags?: ReadonlyArray<string>;
    iconAlt?: string;
    iconAriaLabel?: string;
    iconName?: IconProps.Name;
    iconUrl?: string;
    iconSvg?: React.ReactNode;
}
export interface OptionDefinition extends BaseOption {
    __labelPrefix?: string;
}
interface InternalOptionDefinition extends OptionDefinition {
    __customIcon?: React.ReactNode;
}
export interface OptionGroup extends BaseOption {
    options: ReadonlyArray<OptionDefinition>;
}
export interface DropdownOption {
    type?: 'child' | 'parent' | 'select-all' | 'use-entered';
    disabled?: boolean;
    disabledReason?: string;
    option: OptionDefinition | OptionGroup;
    afterHeader?: boolean;
}
export interface OptionProps extends BaseComponentProps {
    option?: InternalOptionDefinition;
    triggerVariant?: boolean;
    highlightText?: string;
    highlightedOption?: boolean;
    selectedOption?: boolean;
    isGroupOption?: boolean;
    disableTitleTooltip?: boolean;
    labelContainerRef?: React.RefObject<HTMLSpanElement>;
    labelRef?: React.RefObject<HTMLSpanElement>;
    labelId?: string;
    customContent?: ReactNode;
}
export {};
//# sourceMappingURL=interfaces.d.ts.map