import { default as moment } from 'moment'; import { default as React } from 'react'; import { default as Switch } from '../Switch/Switch'; import { default as DatePicker } from '../DatePicker/DatePicker'; import { default as FormLabel } from '../FormLabel/FormLabel'; import { default as MultiSelect } from '../MultiSelect/MultiSelect'; import { SearchBarProps } from '../SearchBar/SearchBar'; import { SelectProps } from '../Form/Select/Select'; import { TooltipProps } from '../Tooltip/Tooltip'; declare const TextInput: React.LazyExoticComponent<{ ({ value, type, onBlurCallout, debounce, callout, stateName, keyUp, labelText, rightLabel, placeholder, id, classType, required, clear, clearCallout, min, max, step, disabled, autoFocus, inputLabel, autoComplete, onlyWholeNumbers, onlyPositiveNumbers, endText, readOnly, fullWidth, noEmpty, maxLength, setIsOnFocus, onFocus, onReturnCallout, hasError, containerClassName, maxDecimalPlaces, labelTooltip, noScrollForNumbers, noArrowKeyNumberChange, numberFormat, autoResize, errorText, ref, qaTestId, locale, shouldStripSymbologyPrefix, }: import('../ComponentTypes.models').TextInputProps & { ref?: React.Ref; }): React.JSX.Element; displayName: string; }>; declare const Picker: React.LazyExoticComponent; type FilterMenuPropsType = { /** An object containing an entry for each filter input component */ states: FilterStatesType; /** A callback for when the form closes */ close: () => void; /** A callback for when the form's inputs change */ onChangeCallout?: (...params: unknown[]) => void; /** A boolean specifying whether the filters are still loading or not */ loading?: boolean; /** A boolean specifying whether to show additional child components above or below those specified in states */ topChildren?: boolean; /** A boolean specifying whether the sidedrawer with the filter form is open */ isOpen: boolean; /** Anything which you would like to add in addition to Filter options- unique filter types, header/footer information, etc */ children?: (props: { isOpen?: boolean; close?: () => void; }) => React.ReactNode; }; type FormLabelProps = React.ComponentProps; type FilterStateOptionType = { type: 'select' | 'dates' | 'text' | 'toggle' | 'switch' | 'multi-select'; stateName: string; rightLabel?: string; customClass?: string; qaTestId?: string; }; type DatePickerProps = React.ComponentProps; type FilterDateType = moment.Moment | Date | string | undefined | null; interface DatesStatePropType extends FilterStateOptionType { type: 'dates'; labelText: string; disabled?: FormLabelProps['disabled']; defaultValue: { start_date: FilterDateType; end_date?: FilterDateType; }; dateRestrictions?: DatePickerProps['dateRestrictions']; singleDate?: boolean; position?: DatePickerProps['position']; } type TextInputProps = React.ComponentProps; interface TextStatePropType extends FilterStateOptionType { type: 'text'; labelText: string; defaultValue?: TextInputProps['value']; onBlurCallout?: TextInputProps['onBlurCallout']; inputType?: TextInputProps['type']; clearCallout?: TextInputProps['clearCallout']; onReturnCallout?: TextInputProps['onReturnCallout']; numberProps?: Pick & { suffix?: string; }; placeholder?: TextInputProps['placeholder']; disabled?: TextInputProps['disabled']; numberFormat?: TextInputProps['numberFormat']; inputLabel?: TextInputProps['inputLabel']; labelTooltip?: TextInputProps['labelTooltip']; keyUp?: () => void; shouldClose?: boolean; } type PickerProps = React.ComponentProps; interface ToggleStatePropType extends FilterStateOptionType { type: 'toggle'; labelText?: string; options: PickerProps['options']; state?: PickerProps['state']; defaultValue?: PickerProps['selected']; labelTooltip?: PickerProps['labelTooltip']; disabled?: boolean; } type MultiSelectProps = React.ComponentProps; type MultiSelectStatePropType = FilterStateOptionType & Omit & { type: 'multi-select'; }; type SelectStatePropType = FilterStateOptionType & { type: 'select'; options: SelectProps['options']; labelText: string; loading?: SelectProps['loading']; labelTooltip?: TooltipProps; defaultValue: SelectProps['selectedItem']; optionKeyName: string; isError?: SelectProps['error']; searchBar?: boolean; required?: boolean; disabled?: boolean; onSearchChange?: SearchBarProps['onChange']; }; type SwitchProps = React.ComponentProps; interface SwitchStatePropType extends FilterStateOptionType { type: 'switch'; labelText: string; labelTooltip: FormLabelProps['tooltip']; disabled?: FormLabelProps['disabled']; defaultValue: SwitchProps['checked']; } export type FilterStatesType = Record | DatesStatePropType | TextStatePropType | ToggleStatePropType | SwitchStatePropType | MultiSelectStatePropType>; export declare const FilterMenu: ({ states, close, onChangeCallout, loading, topChildren, isOpen, children, }: FilterMenuPropsType) => React.JSX.Element; export {};