import { PopoverHost, AlignResult, PopoverRotation, useAutoAlign } from './chrome/index.mjs'; export { AchievementCatalogSection, AchievementRow, ActivityStatSection, BaseSettingsDialog, BaseSettingsDialogProps, BaseStatsScreen, COMPACT_DIALOG_HEIGHT, ConfirmDialog, ConfirmDialogProps, ContentGutter, CornerActionButtons, DialogHeader, DialogHeaderProps, InlineColorPicker, InlineColorPickerSwatchPlace, InlineColorPickerSwatchRenderer, LOCKED_BADGE_COLOR, MONO_FONT, OverlayBackdrop, OverlayBackdropProps, OverlayCard, OverlayCardProps, OverlayCardThemeColors, PopoverAlign, PopoverBody, PopoverVerticalAlign, PressAwayOverlay, RotatedFrame, RotatedFrameProps, SecondaryButton, SecondaryButtonProps, StaggeredWord, StaggeredWordProps, StatRow, StatSection, UpdateDialog, UpdateDialogProps, ViewInstance, WELL_SHADOW, WellColors, getInlineColorPickerContentSize, getStaggeredWordDuration, isCompactDialogHeight, overlayActionStyles, overlayStyles, useCompactDialog, useOverlayCardColors, usePopoverHost, useWellColors } from './chrome/index.mjs'; import * as react from 'react'; import { ReactNode } from 'react'; import { AchievementTier } from '@tastic/achievements'; import { Profile } from '@tastic/profile'; import { ViewStyle, StyleProp } from 'react-native'; export { loadSkiaWeb, locateSkiaWebFile } from './skia/index.mjs'; import { SeedColor } from '@rific/auto-paper'; import '@tastic/core'; import '@rific/feedback-press'; interface UnlockedAchievement { id: string; icon: string; title: string; tier: AchievementTier; } interface AchievementUnlockOwner { profile?: Profile | null; color: string; } interface Props$4 { unlocks: Partial>; seats: readonly Seat[]; owners: Record; tierColors: Record; fg?: string; style?: ViewStyle; } declare function AchievementUnlockList({ unlocks, seats, owners, tierColors, fg: fgOverride, style }: Props$4): react.JSX.Element | null; interface MenuOption { value: T; label: string; description?: string; icon?: string; iconSize?: number; } interface SingleSelectSection { kind: 'single'; id: string; options: MenuOption[]; value: T; onChange: (value: T) => void; takenValue?: T; } interface MultiSelectSection { kind: 'multi'; id: string; options: MenuOption[]; value: T[]; onChange: (value: T[]) => void; allClear?: boolean; } type MenuSection = SingleSelectSection | MultiSelectSection; interface Props$3 { id: string; host: PopoverHost; icon: string; accessibilityLabel: string; sections: MenuSection[]; accentColor: string; mutedColor: string; onAccentColor?: string; dark: boolean; align?: 'left' | 'right' | 'center'; alignOverride?: AlignResult; rotation?: PopoverRotation; autoDismiss?: boolean; labelFontFamily?: string; allClearLabels?: { all: string; clear: string; }; } declare function SectionedDropdown({ id, host, icon, accessibilityLabel, sections, accentColor, mutedColor, onAccentColor, dark, align: forcedAlign, alignOverride, rotation: rotationOverride, autoDismiss, labelFontFamily, allClearLabels }: Props$3): react.JSX.Element; interface ControlSchemePickerProps { id: string; host: PopoverHost; value: T; onChange: (value: T) => void; options: MenuOption[]; takenValue?: T; accentColor: string; mutedColor: string; onAccentColor?: string; dark: boolean; align?: 'left' | 'right' | 'center'; alignOverride?: AlignResult; rotation?: PopoverRotation; labelFontFamily?: string; } declare function ControlSchemePicker({ id, host, value, onChange, options, takenValue, accentColor, mutedColor, onAccentColor, dark, align, alignOverride, rotation, labelFontFamily }: ControlSchemePickerProps): react.JSX.Element | null; type OrientationMode = 'faceToFace' | 'sideBySide'; interface CornerStatusBadgeSeat { icon?: string; } interface CornerStatusBadgesProps { orientationMode: OrientationMode; p1OnRight: boolean; p1?: CornerStatusBadgeSeat; p2?: CornerStatusBadgeSeat; } declare function CornerStatusBadges({ orientationMode, p1OnRight, p1, p2 }: CornerStatusBadgesProps): react.JSX.Element; declare const LABELED_DROPDOWN_POPOVER_WIDTH = 180; declare function getLabeledDropdownContentHeight(optionCount: number): number; interface LabeledDropdownOption { value: T; label: string; icon?: string; } interface Props$2 { id: string; host: PopoverHost; options: LabeledDropdownOption[]; value: T; onChange: (value: T) => void; color: string; dark: boolean; align?: 'left' | 'right' | 'center'; alignOverride?: AlignResult; } declare function LabeledDropdown({ id, host, options, value, onChange, color, dark, align: forcedAlign, alignOverride }: Props$2): react.JSX.Element; declare function getColorPopoverId(idPrefix: string): string; declare function getProfilePopoverId(idPrefix: string): string; declare function getCpuDifficultyPopoverId(idPrefix: string): string; interface PlayerSetupPanelProps { idPrefix: string; host?: PopoverHost; label?: string; labelFontFamily?: string; color: string; onColorChange: (hex: string) => void; swatches: SeedColor[]; takenColor?: string; allowSwapTaken?: boolean; colorCaption?: string; showColor?: boolean; colorAlignOverride?: AlignResult; colorRotation?: PopoverRotation; isHuman: boolean; secondPicker?: ReactNode; secondPickerId?: string; ready?: boolean; onToggleReady?: () => void; dark: boolean; showReadyButton?: boolean; profiles?: Profile[]; selectedProfileId?: string | null; takenProfileId?: string | null; guestLabel?: string; onProfileSelect?: (profile: Profile | null) => void; onManageProfiles?: () => void; cpuDifficulty?: C; cpuDifficultyOptions?: LabeledDropdownOption[]; onCpuDifficultyChange?: (value: C) => void; humanIcon?: string; cpuIcon?: string; } declare function PlayerSetupPanel({ idPrefix, host, label, labelFontFamily, color, onColorChange, swatches, takenColor, allowSwapTaken, colorCaption, showColor, colorAlignOverride, colorRotation, isHuman, secondPicker, secondPickerId, ready, onToggleReady, dark, showReadyButton, profiles, selectedProfileId, takenProfileId, guestLabel, onProfileSelect, onManageProfiles, cpuDifficulty, cpuDifficultyOptions, onCpuDifficultyChange, humanIcon, cpuIcon }: PlayerSetupPanelProps): react.JSX.Element; interface Props$1 { color: string; ready: boolean; onToggleReady: () => void; style?: StyleProp; labelFontFamily?: string; } declare function ReadyButton({ color, ready, onToggleReady, style, labelFontFamily }: Props$1): react.JSX.Element; interface Props { onBack: () => void; onSettings: () => void; onRandomize?: () => void; onReset?: () => void; fg: string; popoverOpen: boolean; children: ReactNode; } declare function SharedActionBand({ onBack, onSettings, onRandomize, onReset, fg, popoverOpen, children }: Props): react.JSX.Element; interface TriggerGaugeProps { segments: number; litIndices: number[]; size: number; accentColor: string; mutedColor: string; dashWidth?: number; startDeg?: number; endDeg?: number; } declare function TriggerGaugeHost(props: TriggerGaugeProps): react.JSX.Element; interface QuitConfirmation { /** Wire directly to . */ confirmVisible: boolean; /** Wire directly to the back button's onPress (GameActionChips/IconButton onBack/onPress). */ requestBack: () => void; /** Wire directly to . */ cancelBack: () => void; } declare function useQuitConfirmation(hasProgress: () => boolean, onConfirmedBack: () => void): QuitConfirmation; declare function useZoneClampedAlign(open: boolean, contentWidth: number, contentHeight: number, rotation?: PopoverRotation): ReturnType; export { AchievementUnlockList, type AchievementUnlockOwner, AlignResult, ControlSchemePicker, type ControlSchemePickerProps, type CornerStatusBadgeSeat, CornerStatusBadges, type CornerStatusBadgesProps, LABELED_DROPDOWN_POPOVER_WIDTH, LabeledDropdown, type LabeledDropdownOption, type MenuOption, type MenuSection, type MultiSelectSection, type OrientationMode, PlayerSetupPanel, type PlayerSetupPanelProps, PopoverHost, PopoverRotation, type QuitConfirmation, ReadyButton, SectionedDropdown, SharedActionBand, type SingleSelectSection, TriggerGaugeHost, type TriggerGaugeProps, type UnlockedAchievement, getColorPopoverId, getCpuDifficultyPopoverId, getLabeledDropdownContentHeight, getProfilePopoverId, useAutoAlign, useQuitConfirmation, useZoneClampedAlign };