import * as React from 'react'; import type { EmojiFamilyKeys } from '../utils/emojiList'; import type { EmojiIconProps } from './EmojiIcon'; import type { EmojiNavBarProps } from './EmojiNavBar'; import type { EmojiStatusBarProps } from './EmojiStatusBar'; import type { Emoji } from '../type/Emoji'; import type { EmojiStringKeys } from '../type/EmojiStringKeys'; import type { LocalizedStrings } from '../../common/index'; /** * @internal * Types of emoji pane size */ export declare type EmojiPaneMode = 'Quick' | 'Partial' | 'Full'; /** * @internal * Types of emoji Navigation direction */ export declare type EmojiPaneNavigateDirection = 'Horizontal' | 'Vertical'; /** * @internal * Emoji Pane data */ export interface EmojiPaneState { index: number; mode: EmojiPaneMode; currentEmojiList: Emoji[]; currentFamily: EmojiFamilyKeys; search: string; searchInBox: string; } /** * @internal * Emoji Pane customizable data */ export interface EmojiPaneProps { searchDisabled?: boolean; hideStatusBar?: boolean; navBarProps?: Partial; statusBarProps?: Partial; emojiIconProps?: Partial; searchBoxString?: LocalizedStrings; onSelect: (emoji: Emoji, wordBeforeCursor: string) => void; baseId: number; strings: Record; } /** * @internal * Emoji pane component functions */ export interface EmojiPane { navigate: (change: number, direction?: EmojiPaneNavigateDirection) => number; getEmojiElementIdByIndex: (index: number) => string | null; getSelectedEmoji: () => Emoji; showFullPicker: (fullSearchText: string) => void; setSearch: (value: string) => void; normalizeSearchText: (text: string, colonIncluded: boolean) => string; getSearchResult: (searchValue: string, mode: EmojiPaneMode) => Emoji[]; getEmojiIconId: (emoji: Emoji) => string; } /** * @internal * Emoji pane component */ export declare function showEmojiPane(onSelect: (emoji: Emoji, wordBeforeCursor: string) => void, strings: Record, paneRef: React.RefObject, baseId: number, searchBoxString?: LocalizedStrings): JSX.Element;