import React from 'react';
import type { OtherHTMLAttributes, OptionsTheme, AsElementType } from '@instructure/shared-types';
import type { WithStyleProps } from '@instructure/emotion';
import Drilldown from '../index';
import type { DrilldownOptionValue } from '../DrilldownOption/props';
import type { OptionChild, SeparatorChild } from '../props';
type GroupChildren = OptionChild | SeparatorChild;
type DrilldownGroupOwnProps = {
id: string;
/**
* Children of type:
* ``, ``
*/
children?: GroupChildren | GroupChildren[];
/**
* The label of the option group.
*/
renderGroupTitle?: React.ReactNode | (() => React.ReactNode);
/**
* Hides the separators around the group.
*/
withoutSeparators?: boolean;
/**
* Is the option group disabled.
*/
disabled?: boolean;
/**
* The ARIA role of the element.
*/
role?: string;
/**
* Element type to render as. By default, it inherits Drilldown's `as` prop.
*/
as?: AsElementType;
/**
* Provides a reference to the underlying html root element
*/
elementRef?: (element: Element | null) => void;
/**
* Makes the option group selectable (with "check" icon indicators).
* Can be set to a single-select (radio) or a multi-select (checkbox) group.
*/
selectableType?: 'single' | 'multiple';
/**
* An array of the values for the selected items on initial render. Works only with "selectableType" set. If "selectableType" is "single", the array has to have 1 item.
*/
defaultSelected?: DrilldownOptionValue[];
/**
* An array of the values for the selected items. If defined, the component will act controlled and will not manage its own state. Works only with "selectableType" set.
* If "selectableType" is "single", the array has to have 1 item.
*/
selectedOptions?: DrilldownOptionValue[];
/**
* Callback fired when an option within the `` is selected
*/
onSelect?: (event: React.SyntheticEvent, args: {
value: DrilldownOptionValue[];
isSelected: boolean;
selectedOption: OptionChild;
drilldown: Drilldown;
}) => void;
};
type PropKeys = keyof DrilldownGroupOwnProps;
type AllowedPropKeys = Readonly>;
type DrilldownGroupProps = DrilldownGroupOwnProps & WithStyleProps & OtherHTMLAttributes;
declare const allowedProps: AllowedPropKeys;
export type { DrilldownGroupProps, GroupChildren };
export { allowedProps };
//# sourceMappingURL=props.d.ts.map