import React from 'react'; import PropTypes from 'prop-types'; import { StandardProps } from '../../util/component-types'; import { IButtonProps } from '../Button/Button'; import { IDropMenuState, IDropMenuProps } from '../DropMenu/DropMenu'; import * as reducers from './SplitButton.reducers'; /** SplitButton Button Child Component */ export interface ISplitButtonButtonChildProps extends StandardProps { /** Disables selection of the \`Button\`. */ isDisabled?: boolean; } /** SplitButton */ export interface ISplitButtonProps extends StandardProps { /** Sets the direction the flyout menu will render relative to the SplitButton. */ direction: 'up' | 'down'; /** Style variations of the SplitButton. */ kind?: 'primary' | 'danger'; /** Size variations of the SplitButton. */ size?: 'short' | 'small' | 'large'; /** Form element type variations of SplitButton. Passed through to DOM Button. */ type?: string; /** *Child Element* - props pass through to the underlying DropMenu component */ DropMenu: IDropMenuProps; } declare class SplitButton extends React.Component { static displayName: string; static Button: { (_props: ISplitButtonButtonChildProps): null; displayName: string; peek: { description: string; }; propTypes: { /** The children to render within the \`Button\`. */ children: PropTypes.Requireable; /** Disables selection of the \`Button\`. */ isDisabled: PropTypes.Requireable; /** Called when the user clicks the \`Button\`. Signature: \`({ props, event }) => {}\` */ onClick: PropTypes.Requireable<(...args: any[]) => any>; }; }; static peek: { description: string; categories: string[]; madeFrom: string[]; }; static reducers: typeof reducers; static propTypes: { /** Object of DropMenu props which are passed through to the underlying DropMenu component. */ DropMenu: PropTypes.Requireable; className: PropTypes.Requireable; style: PropTypes.Requireable; isDisabled: PropTypes.Requireable; isExpanded: PropTypes.Requireable; direction: PropTypes.Requireable; alignment: PropTypes.Requireable; selectedIndices: PropTypes.Requireable<(number | null | undefined)[]>; focusedIndex: PropTypes.Requireable; portalId: PropTypes.Requireable; flyOutStyle: PropTypes.Requireable; optionContainerStyle: PropTypes.Requireable; onExpand: PropTypes.Requireable<(...args: any[]) => any>; onCollapse: PropTypes.Requireable<(...args: any[]) => any>; onSelect: PropTypes.Requireable<(...args: any[]) => any>; onFocusNext: PropTypes.Requireable<(...args: any[]) => any>; onFocusPrev: PropTypes.Requireable<(...args: any[]) => any>; onFocusOption: PropTypes.Requireable<(...args: any[]) => any>; Control: PropTypes.Requireable; Option: PropTypes.Requireable; OptionGroup: PropTypes.Requireable; NullOption: PropTypes.Requireable; Header: PropTypes.Requireable; ContextMenu: PropTypes.Requireable; FixedOption: PropTypes.Requireable; }>>; /** All children should be \`ButtonGroup.Button\`s and they support the same props as \`Button\`s. */ children: PropTypes.Requireable; /** Appended to the component-specific class names set on the root element. Value is run through the \`classnames\` library. */ className: PropTypes.Requireable; /** Sets the direction the flyout menu will render relative to the SplitButton. */ direction: PropTypes.Requireable; /** Style variations of the SplitButton. */ kind: PropTypes.Requireable; /** Size variations of the SplitButton. */ size: PropTypes.Requireable; /** Form element type variations of SplitButton. Passed through to DOM Button. */ type: PropTypes.Requireable; }; static defaultProps: { direction: "down"; type: "button"; DropMenu: { isDisabled: boolean; isExpanded: boolean; direction: "down"; alignment: "start"; selectedIndices: never[]; focusedIndex: null; flyOutStyle: { maxHeight: string; }; onExpand: (...args: any[]) => void; onCollapse: (...args: any[]) => void; onSelect: (...args: any[]) => void; onFocusNext: (...args: any[]) => void; onFocusPrev: (...args: any[]) => void; onFocusOption: (...args: any[]) => void; portalId: string; optionContainerStyle: {}; ContextMenu: { direction: string; directonOffset: number; minWidthOffset: number; alignment: string; getAlignmentOffset: () => number; isExpanded: boolean; onClickOut: null; portalId: null; }; }; }; handleSelect: (optionIndex: number | null, { event, }: { event: React.KeyboardEvent | React.MouseEvent; }) => void; handleClick: ({ event, }: { event: React.MouseEvent; }) => void; handleButtonClick: (buttonProps: IButtonProps, event: any) => void; render(): JSX.Element; } declare const _default: typeof SplitButton & import("../../util/state-management").IHybridComponent; export default _default; export { SplitButton as SplitButtonDumb }; //# sourceMappingURL=SplitButton.d.ts.map