import type { TeamRepresentationSelection } from '../team-group-contract.js'; import type { ArkmeSourceSendResult, ArkmeUploadedAsset } from '../types.js'; import { type ArkmeEmoji } from './arkme-emoji.js'; import type { ArkmeComposerCaretGeometry } from './ArkmeRichComposerInput.js'; export interface ArkmeEmojiPanelGeometry { left: number; top: number; arrowCenterX: number; placement: 'above' | 'below'; } export declare function resolveArkmeEmojiPanelGeometry({ caret, editor, panelWidth, panelHeight, viewportWidth, viewportHeight }: { caret: ArkmeComposerCaretGeometry; editor: ArkmeComposerCaretGeometry; panelWidth: number; panelHeight: number; viewportWidth: number; viewportHeight: number; }): ArkmeEmojiPanelGeometry; interface ArkmeEmojiPickerBaseProps { disabled: boolean; accountKey?: string | undefined; scopeKey: string | undefined; getCaretGeometry?: () => ArkmeComposerCaretGeometry | undefined; getEditorGeometry?: () => ArkmeComposerCaretGeometry | undefined; onBeforeToggle?: () => void; /** Return false when the editor rejects insertion; rejected choices are not recorded as recent. */ onSelect(emoji: ArkmeEmoji): boolean | void; onError?: (message: string) => void; } /** Text insertion cannot accidentally acquire the private/group chat sticker-send contract. */ export type ArkmeEmojiPickerProps = ArkmeEmojiPickerBaseProps & ({ mode: 'text'; representation?: never; sourceRef?: never; onUploadSticker?: never; onStickerSent?: never; } | { mode?: 'all'; representation?: TeamRepresentationSelection | undefined; sourceRef?: string; onUploadSticker?: (file: File) => Promise; onStickerSent?: (result: ArkmeSourceSendResult) => void | Promise; }); export declare function ArkmeEmojiPicker({ disabled, mode, accountKey, scopeKey, sourceRef, representation, getCaretGeometry, getEditorGeometry, onBeforeToggle, onSelect, onUploadSticker, onStickerSent, onError }: ArkmeEmojiPickerProps): import("react").JSX.Element; export {}; //# sourceMappingURL=ArkmeEmojiPicker.d.ts.map