import React from 'react';
import type { DiscoveryModel } from '../types';
import type { DeriveModelTagsContext } from '../utils';
export interface AnnotatedModel extends DiscoveryModel {
    groupKey: string;
    groupLabel: string;
}
export interface OptionListProps {
    id: string;
    options: AnnotatedModel[];
    activeIndex: number;
    setActiveIndex: (i: number) => void;
    selectedId: string | null;
    onSelect: (m: DiscoveryModel) => void;
    tagContext?: DeriveModelTagsContext;
    tagVariants?: Record<string, string>;
    groupCounts?: Record<string, number>;
    renderRowActions?: (m: DiscoveryModel) => React.ReactNode;
    renderRowMeta?: (m: DiscoveryModel) => React.ReactNode;
    dense?: boolean;
    maxHeight?: number;
    hideGroupHeaders?: boolean;
    hideTagKinds?: readonly string[];
    'aria-label'?: string;
    collapsedGroups?: ReadonlySet<string>;
    onGroupToggle?: (groupKey: string) => void;
}
export declare function optionDomId(listboxId: string, modelId: string): string;
export declare const GroupedOptionList: React.FC<OptionListProps>;
export declare const VirtualOptionList: React.FC<OptionListProps>;
//# sourceMappingURL=OptionList.d.ts.map