/// <reference types="react" />
import * as React from 'react';
import React__default, { RefObject, PropsWithChildren, ComponentType, ReactNode } from 'react';
import * as react_native from 'react-native';
import { ImageSourcePropType, ViewStyle, ImageStyle, TextStyle, ColorSchemeName, StyleProp, FlatList, TextInput, ImageProps, Animated, TextProps } from 'react-native';
import * as _livelike_javascript from '@livelike/javascript';
import { IChatMessageResponsePayload as IChatMessageResponsePayload$1, IChatUserMessageResponsePayload as IChatUserMessageResponsePayload$1, IWidgetOptionItem as IWidgetOptionItem$1, IReactionEmoji as IReactionEmoji$1, ICoreInitApiArgs, IUserProfile, IMessageListIteratorResult, ISendMessageArgs, IChatRoomPayload, IUserReaction, IWidgetChoiceItem as IWidgetChoiceItem$1, IWidgetPayload as IWidgetPayload$1, IWidgetInteraction as IWidgetInteraction$1, IWidgetEarnableReward as IWidgetEarnableReward$1, INumberPredictionItemOption, WidgetKind as WidgetKind$1, IGif, IUserReactionCountDetail, INumberPredictionItem, ISliderInteractionItem, ITextAskInteractionItem, IWidgetKindInteractionsMap, IRewardTransaction } from '@livelike/javascript';
import { SliderProps } from '@miblanchard/react-native-slider';
import { ComponentStyleProp as ComponentStyleProp$1 } from '@livelike/react-native';

type IChatMessage = IChatMessageResponsePayload$1 & {
    isDeleted?: boolean;
};
type IChatUserMessage = IChatUserMessageResponsePayload$1 & {
    isDeleted?: boolean;
};

declare enum LLThemeType {
    DARK = "dark",
    LIGHT = "light"
}
type LLTheme = {
    text: string;
    secondaryText: string;
    background: string;
    secondaryBackground: string;
    popoverBackground: string;
    primaryButtonBackground: string;
    primaryPressedButtonBackground: string;
    primaryButtonText: string;
    border: string;
    info: string;
    error: string;
    widgetBackground: string;
    widgetOption: string;
    widgetSelectedOption: string;
    disabledButtonBackground: string;
    disabledButtonText: string;
    correct: string;
    incorrect: string;
    correctIncorrectText: string;
};
type LLThemes = Record<LLThemeType, LLTheme>;
type LLThemeAssets = {
    avatar: ImageSourcePropType;
    send: ImageSourcePropType;
    gif: ImageSourcePropType;
    sticker: ImageSourcePropType;
    close: ImageSourcePropType;
    bin: ImageSourcePropType;
    blockUser: ImageSourcePropType;
    flag: ImageSourcePropType;
    reaction: ImageSourcePropType;
    themeSwitch: ImageSourcePropType;
};

declare enum PopoverType {
    Menu = "menu",
    Reactions = "reactions"
}
type PopoverDetail = {
    messageId: string;
    popoverType: PopoverType | undefined;
};

declare enum BannerType {
    INFO = "info",
    ERROR = "ERROR"
}
type Banner = {
    type: BannerType;
    id: string;
    message: string;
};

declare enum WidgetResultState {
    SHOWN = "shown",
    HIDDEN = "hidden"
}
declare enum WidgetUIPhase {
    INTERACTIVE = "interactive",
    SUBMITTING = "submitting",
    SUBMITTED = "submitted",
    INTERACTIVE_TIMED_OUT = "interactive-timed-out",
    EXPIRED = "expired",
    FOLLOW_UP_PUBLISHED = "follow-up-published"
}
declare enum WidgetMode {
    POPUP = "popup",
    INTERACTIVE_TIMELINE = "interactive-timeline"
}

type LLFonts = {
    /** for fontWeight: 400 (or normal) */
    regular?: string;
    /** for fontStyle: "italic"  */
    italic?: string;
    /** for fontWeight: 100  */
    thin?: string;
    /** for fontWeight: 100 & fontStyle: "italic"  */
    thinItalic?: string;
    /** for fontWeight: 200  */
    extraLight?: string;
    /** for fontWeight: 200 & fontStyle: "italic"  */
    extraLightItalic?: string;
    /** for fontWeight: 300  */
    light?: string;
    /** for fontWeight: 300 & fontStyle: "italic"  */
    lightItalic?: string;
    /** for fontWeight: 500  */
    medium?: string;
    /** for fontWeight: 500 & fontStyle: "italic"  */
    mediumItalic?: string;
    /** for fontWeight: 600  */
    semiBold?: string;
    /** for fontWeight: 600 & fontStyle: "italic"  */
    semiBoldItalic?: string;
    /** for fontWeight: 700  */
    bold?: string;
    /** for fontWeight: 700 & fontStyle: "italic"  */
    boldItalic?: string;
    /** for fontWeight: 800  */
    extraBold?: string;
    /** for fontWeight: 800 & fontStyle: "italic"  */
    extraBoldItalic?: string;
    /** for fontWeight: 900  */
    black?: string;
    /** for fontWeight: 900 & fontStyle: "italic"  */
    blackItalic?: string;
};
type FontWeightType = 'thin' | 'extraLight' | 'light' | 'regular' | 'bold' | 'semiBold' | 'extraBold' | 'black';
type FontFamilyType = FontWeightType | `${FontWeightType}Italic` | 'italic';

type LLComponentStyleFn<TStyles> = (arg: {
    theme: LLTheme;
    fonts: LLFonts;
}) => TStyles;
type ComponentStyleProp<TStyles> = {
    styles?: Partial<TStyles>;
};
type createStylesArg<TStyles> = {
    componentStyles: TStyles;
    stylesProp?: Partial<TStyles>;
};

type TrackNumberPredictionWidgetInteractedArgs = {
    value: number;
    widgetOption: IWidgetOptionItem$1;
};

type LLChatMessageItemHeaderStyles = {
    headerContainer: ViewStyle;
    avatarImage: ImageStyle;
    titleContainer: ViewStyle;
    username: TextStyle;
    ownUsername: TextStyle;
    timestamp: TextStyle;
    ownTimestamp: TextStyle;
};
type LLChatMessageItemHeaderProps = ComponentStyleProp<LLChatMessageItemHeaderStyles> & {
    message: IChatUserMessage;
    isSelfMessage: boolean;
    formatMessageTimestamp?: (date: string) => string;
};
declare function LLChatMessageItemHeader({ message: messageDetails, isSelfMessage, styles: stylesProp, formatMessageTimestamp, }: LLChatMessageItemHeaderProps): React__default.JSX.Element;

type LLChatMessageItemBodyTextStyles = {
    text: TextStyle;
    deletedMessageText: TextStyle;
    selfMessageText: TextStyle;
    stickerImage: ImageStyle;
};
type LLChatMessageItemBodyTextProps = ComponentStyleProp<LLChatMessageItemBodyTextStyles> & {
    message: string;
    isDeleted: boolean;
    isSelfMessage: boolean;
};
declare const LLChatMessageItemBodyText: React__default.MemoExoticComponent<({ message, styles: stylesProp, isDeleted, isSelfMessage, }: LLChatMessageItemBodyTextProps) => React__default.JSX.Element>;

type LLChatMessageItemBodyStyles = {
    textContainer: ViewStyle;
    selfMessageTextContainer: ViewStyle;
    textContent: ViewStyle;
};
type LLChatMessageItemBodyProps = ComponentStyleProp<LLChatMessageItemBodyStyles> & {
    message: IChatUserMessage;
    isSelfMessage: boolean;
    ChatMessageItemBodyText?: typeof LLChatMessageItemBodyText;
    ChatMessageItemBodyTextStyles?: LLChatMessageItemBodyTextProps['styles'];
};
declare function LLChatMessageItemBody({ message: messageDetails, isSelfMessage, styles: stylesProp, ChatMessageItemBodyTextStyles, ChatMessageItemBodyText, }: LLChatMessageItemBodyProps): React__default.JSX.Element;

type LLReactionPickerItemStyles = {
    reactionIcon: ImageStyle;
};
type LLReactionPickerItemProps = ComponentStyleProp<LLReactionPickerItemStyles> & {
    reaction: IReactionEmoji$1;
    onPress: (id: string) => void;
};
declare const LLReactionPickerItem: ({ reaction, styles: stylesProp, onPress, }: LLReactionPickerItemProps) => React__default.JSX.Element;

type LLReactionPickerStyles = {
    pickerContainer: ViewStyle;
};
type LLReactionPickerProps = ComponentStyleProp<LLReactionPickerStyles> & {
    visible?: boolean;
    reactionSpaceId?: string;
    onPress: (reactionId: string) => void;
    ReactionItemComponentStyles?: LLReactionPickerItemProps['styles'];
    ReactionItemComponent?: typeof LLReactionPickerItem;
    onReactionPanelOpen?: () => void;
    onReactionPanelClose?: () => void;
};
/**
 * @description Provides stock UI for the Reaction picker component.
 * @param {Function} onPanelOpen - A callback function to be called when the panel opens. It is used for tracking analytics events when the component becomes visible.
 * @param {Function} onPanelClose - A callback function to be called when the panel closes. It is used for tracking analytics events when the component is unmounted as it becomes invisible.
 * @returns {JSX.Element} - Stock UI for the Reaction picker.
 */
declare function LLReactionPicker({ visible, styles: stylesProp, reactionSpaceId, onPress, ReactionItemComponentStyles, ReactionItemComponent, onReactionPanelOpen, onReactionPanelClose, }: LLReactionPickerProps): React__default.JSX.Element;

declare function useInit(initArg: ICoreInitApiArgs): {
    profile: IUserProfile;
    loaded: boolean;
};

type LLStoreUnsubscriber = () => void;
type LLStoreListener<TValue> = (value: TValue) => void;
type LLStore<TValue> = {
    value: TValue;
    get: () => TValue;
    set: (value: TValue) => void;
    notify: () => void;
    listeners: LLStoreListener<TValue>[];
    subscribe: (cb: LLStoreListener<TValue>) => LLStoreUnsubscriber;
};

type ChatMessagesState = {
    chatMessagesLoaded?: boolean;
    chatMessages: IChatMessage[];
    messageListIterator?: () => IMessageListIteratorResult;
    userAvatarUrl?: string;
};
type UpdateChatConfigActionArg = {
    roomId: string;
    userAvatarUrl?: string;
};

type UseChatMessageArg = {
    roomId: string;
};
declare function useChatRoomState({ roomId }: UseChatMessageArg): ChatMessagesState;
/**
 * @deprecated Use useChatRoomState hook instead
 */
declare function useChatMessages({ roomId }: UseChatMessageArg): ChatMessagesState;

declare function useChatMessagesEffect({ roomId }: {
    roomId: any;
}): void;

declare function useChatMessageActions({ roomId }: {
    roomId: any;
}): {
    sendChatMessage: (messageArgs: ISendMessageArgs) => Promise<any>;
    deleteChatMessage: ({ roomId, chatMessage }: {
        roomId: any;
        chatMessage: any;
    }) => void;
};

type UseChatRoomArg = {
    roomId: string;
};
declare function useChatRoom({ roomId }: UseChatRoomArg): {
    chatRoom: IChatRoomPayload;
};

declare function useStickerPicker(): {
    selectedStickerPackId: string;
    setSelectedStickerPackId: React.Dispatch<React.SetStateAction<string>>;
};

interface IAttribute {
    key: string;
    value: string;
}

declare enum ChatMessageEvent {
    MESSAGE_CREATED = "message-created",
    IMAGE_CREATED = "image-created",
    CUSTOM_MESSAGE_CREATED = "custom-message-created",
    MESSAGE_DELETED = "message-deleted",
    IMAGE_DELETED = "image-deleted",
    CHATROOM_UPDATED = "chatroom-updated"
}
declare const ChatUserMessageEventType: readonly [ChatMessageEvent.MESSAGE_CREATED, ChatMessageEvent.IMAGE_CREATED, ChatMessageEvent.MESSAGE_DELETED, ChatMessageEvent.IMAGE_DELETED, ChatMessageEvent.CHATROOM_UPDATED];

declare enum WidgetKind {
    ALERT = "alert",
    EMOJI_SLIDER = "emoji-slider",
    SOCIAL_EMBED = "social-embed",
    RICH_POST = "rich-post",
    CHEER_METER = "cheer-meter",
    TEXT_POLL = "text-poll",
    IMAGE_POLL = "image-poll",
    TEXT_QUIZ = "text-quiz",
    IMAGE_QUIZ = "image-quiz",
    TEXT_PREDICTION = "text-prediction",
    TEXT_PREDICTION_FOLLOW_UP = "text-prediction-follow-up",
    IMAGE_PREDICTION = "image-prediction",
    IMAGE_PREDICTION_FOLLOW_UP = "image-prediction-follow-up",
    TEXT_ASK = "text-ask",
    VIDEO_ALERT = "video-alert",
    TEXT_NUMBER_PREDICTION = "text-number-prediction",
    TEXT_NUMBER_PREDICTION_FOLLOW_UP = "text-number-prediction-follow-up",
    IMAGE_NUMBER_PREDICTION = "image-number-prediction",
    IMAGE_NUMBER_PREDICTION_FOLLOW_UP = "image-number-prediction-follow-up"
}

interface ISponsorPayload {
    /** sponsor resource id */
    id: string;
    /** sponsor resource url */
    url: string;
    /** application id */
    client_id: string;
    /** name of the sponsor */
    name: string;
    /** logo of the sponsor */
    logo_url: string;
    /** brand color of the sponsor */
    brand_color: string | null;
    /** sponsor click url */
    clickthrough_url: string | null;
}

interface IWidgetEarnableReward {
    reward_action_key: string;
    reward_item_amount: number;
    reward_item_id: string;
    reward_item_name: string;
}
interface IWidgetOptionItem {
    id: string;
    url: string;
    description?: string;
    image_url?: string;
    vote_count?: number;
    vote_url?: string;
    number?: number;
    /** for prediction widget if option is correct */
    is_correct?: boolean;
    /** for number prediction widget */
    correct_number?: number;
    earnable_rewards: IWidgetEarnableReward[];
    /** The ID of the reward item to give when this option is correct */
    reward_item_id?: string | null;
    /** The amount of the reward item to give when this option is correct */
    reward_item_amount?: number;
}
interface IWidgetChoiceItem {
    id: string;
    description?: string;
    image_url?: string;
    /** Total number of answers */
    answer_count: number;
    answer_url: string;
    /** If answer is correct */
    is_correct: boolean;
    translatable_fields: string[];
}
interface IWidgetAttribute extends IAttribute {
}
interface IWidgetPayload {
    id: string;
    kind: WidgetKind;
    /** application Id */
    client_id: string;
    /** Id of program the widget was created in */
    program_id: string;
    /** When widget was created */
    created_at: string;
    /** Widget duration */
    timeout: string;
    /** Sync time */
    program_date_time: string | null;
    /** Delay for when widget is published */
    publish_delay: string;
    /** User that created the widget */
    created_by: {
        id: string;
        name: string | null;
        image_url: string | null;
    };
    /** Widget reactions */
    reactions: IWidgetReaction[] | null;
    /** Widget custom data */
    custom_data?: string;
    /** Time widget was published */
    published_at?: string | null;
    /** Time widget was scheduled */
    scheduled_at?: string | null;
    /** Follow up widget payload for prediction widgets */
    follow_ups?: IWidgetPayload[];
    /** follow up url used to create followUp widget */
    follow_up_url?: string;
    /** Widget question */
    question?: string;
    /** Widget options array */
    options?: IWidgetOptionItem[];
    /** Widget choice array */
    choices?: IWidgetChoiceItem[];
    /** Follow Up Widget Text Prediction Id */
    text_prediction_id?: string;
    /** Follow Up Widget Image Prediction Id */
    image_prediction_id?: string;
    /** Follow Up Widget Text Number Prediction Id */
    text_number_prediction_id?: string;
    /** Follow Up Widget Image Number Prediction Id */
    image_number_prediction_id?: string;
    sponsors: ISponsorPayload[];
    url: string;
    subscribe_channel: string;
    interaction_url: string;
    impression_url: string;
    impression_count: number;
    unique_impression_count: number;
    /** total users engaged on the widget */
    engagement_count: number;
    engagement_percent: string;
    status: 'pending' | 'published' | 'in-flight';
    /** url to be used to schedule a widget for publishing */
    schedule_url: string;
    rewards_url: string | null;
    timetoken?: string;
    /** claim url that could be invoked to claim prediction rewards */
    claim_url?: string;
    reply_url?: string;
    /** vote_url used in the case of emoji slider and number prediction widget */
    vote_url?: string;
    earnable_rewards: IWidgetEarnableReward[];
    /** dateTime in UTC where after this dateTime,  widget is not interactable */
    interactive_until: string | null;
    widget_attributes: IWidgetAttribute[];
    pubnub_enabled: boolean;
    widget_interactions_url_template: string;
    /** ask widget or alert widget title */
    title?: string;
    /** ask widget prompt */
    prompt?: string;
    /** ask widget confirmation message */
    confirmation_message?: string;
    /** emoji slider attribute */
    average_magnitude?: string;
    /** emoji slider attribute */
    initial_magnitude?: string;
    /** alert widget widget text if present */
    text?: string;
    /** alert widget image url if present */
    image_url?: string;
    /** alert widget link label if present */
    link_label?: string;
    /** alert widget link url if present */
    link_url?: string;
    /** video on demand playback time in milliseconds */
    playback_time_ms?: number;
    /** correct option id for prediction widget */
    correct_option_id?: string;
    /** url to get text prediction widget details  */
    text_prediction_url?: string;
    /** url to get image prediction widget details  */
    image_prediction_url?: string;
    /** url to get image number prediction widget details */
    image_number_prediction_url?: string;
    items?: SocialEmbedItem[];
    comment?: string;
}
interface SocialEmbedItem {
    url: string;
    id: string;
    oembed: Oembed;
}
interface Oembed {
    provider_url: string;
    version: string;
    author_name: string;
    author_url: string;
    html: string;
    width: number;
    height?: number | null;
    url: string;
    cache_age: string;
    type: string;
    provider_name: string;
    title: string;
}
interface IWidgetReaction {
    /** Total reaction count */
    count: number;
    /** Reaction image url */
    file: string;
    /** Reaction id */
    id: string;
    /** Reaction file mimetype */
    mimetype: string;
    /** Reaction name */
    name: string;
    react_url: string;
    sequence: number;
}
interface IWidgetInteraction {
    id?: string;
    created_at: string;
    widget_kind: WidgetKind;
    url: string;
    option_id?: string;
    choice_id?: string;
    profile_id: string;
    widget_id: string;
    text?: string;
    votes?: IWidgetInteractionVoteArgs[];
    /** claim token present for prediction interaction */
    claim_token?: string;
    /** magnitude present for emoji slider */
    magnitude?: number;
    /** vote_count present for cheer meter widget */
    vote_count?: number;
}
interface IWidgetInteractionVoteArgs {
    id: string;
    created_at: string;
    number: number;
    option_id: string;
    url: string;
}

interface IMessageReaction {
    actionTimetoken: string;
    uuid: string;
    user_reaction_id: string;
}
interface IMessageReactions {
    [reactionId: string]: IMessageReaction[];
}
type DateTime = Date | string | number;
interface IBaseMessageResponsePayload {
    id: string;
    chat_room_id: string;
    sender_id: string;
    sender_nickname: string;
    sender_image_url?: string | null;
    sender_profile_url: string;
    badge_image_url?: string | null;
    created_at: string;
    program_date_time: DateTime | null;
    timetoken?: string;
    reactions?: IMessageReactions;
}
interface IMessageRequestPayload {
    client_message_id: string;
    message_event: ChatMessageEvent.IMAGE_CREATED | ChatMessageEvent.MESSAGE_CREATED;
    chat_room_id: string;
    sender_id: string;
    sender_nickname: string;
    sender_image_url?: string | null;
    sender_profile_url: string;
    badge_image_url?: string | null;
    program_date_time: DateTime | null;
    image_url?: string;
    image_width?: number;
    image_height?: number;
    message?: string;
    message_metadata: Record<string, unknown> | null;
}
interface IMessageResponsePayload extends Omit<IMessageRequestPayload, 'message_event'>, IBaseMessageResponsePayload {
    content_filter: string[];
    reactions?: IMessageReactions;
    filtered_message: string | null;
    filtered_sender_nickname: string | null;
    timetoken?: string;
    isFiltered?: boolean;
    message_event: (typeof ChatUserMessageEventType)[number];
}
type IQuoteMessagePropType = IMessageResponsePayload | Omit<IQuoteMessageResponsePayload, 'quote_message' | 'reactions'>;
interface IQuoteMessagePayload {
    quote_message: IQuoteMessagePropType;
    quote_message_id: string;
}
type IQuoteMessageResponsePayload = IQuoteMessagePayload & IMessageResponsePayload;
type IChatUserMessageResponsePayload = IMessageResponsePayload | IQuoteMessageResponsePayload;
type IChatMessageResponsePayload = IChatUserMessageResponsePayload | ICustomMessageResponsePayload;
interface ICustomMessageRequestPayload {
    program_date_time: DateTime | null;
    custom_data: string;
}
interface ICustomMessageResponsePayload extends ICustomMessageRequestPayload, IBaseMessageResponsePayload {
    message_event: ChatMessageEvent.CUSTOM_MESSAGE_CREATED;
}

interface IReactionEmoji {
    file: string;
    id: string;
    mimetype: string;
    name: string;
}
interface IReactionPack {
    id: string;
    name: string;
    url: string;
    emojis: IReactionEmoji[];
}

interface IStickerEmoji {
    file: string;
    id: string;
    mimetype: string;
    pack_id: string;
    pack_name: string;
    pack_url: string;
    shortcode: string;
    url: string;
}
interface IStickerPack {
    client_id: string;
    file: string;
    id: string;
    mimetype: string;
    name: string;
    stickers: IStickerEmoji[];
    stickers_url: string;
    url: string;
}

declare global {
    interface Window {
        PTEST: any;
    }
}

declare function useStickerPacks(): {
    stickerPacks: IStickerPack[];
};

declare function useLoadStickerPacksEffect(): void;

type UseThemeArg = {
    themeType?: ColorSchemeName;
};
declare function useTheme({ themeType: themeTypeArg }?: UseThemeArg): {
    themeType: LLThemeType | ColorSchemeName;
    themes: LLThemes;
    themeAssets: LLThemeAssets;
    theme: LLTheme;
    setThemeType: (newThemeType: LLThemeType) => void;
    setThemes: (_themes: LLThemes) => void;
};

type SetThemeFontsActionArg = {
    fonts: LLFonts;
};

type UpdateUserReactionActionArg = {
    reactionSpaceId: string;
    userReaction: Pick<IUserReaction, 'id' | 'reacted_by_id' | 'reaction_id' | 'target_id'>;
    profileId: string;
};

type WidgetState = {
    widgetPayload: IWidgetPayload$1;
    widgetUIPhase?: WidgetUIPhase;
    widgetInteractions?: IWidgetInteraction$1[];
    selectedOptionIndex?: number;
    widgetResultState?: WidgetResultState;
    widgetRewards?: IWidgetEarnableReward$1[];
    isTimelineWidget?: boolean;
};
type BaseWidgetActionArgs = {
    widgetId: string;
};
type UpdateWidgetPhaseActionArgs = BaseWidgetActionArgs & {
    widgetUIPhase: WidgetUIPhase;
};
type UpdateWidgetChoicesActionArgs = BaseWidgetActionArgs & {
    widgetChoices: Pick<IWidgetChoiceItem$1, 'id' | 'answer_count'>[];
};
type UpdateWidgetOptionsActionArgs = BaseWidgetActionArgs & {
    widgetOptions: Pick<IWidgetOptionItem$1, 'id' | 'vote_count'>[];
};
type UpdateSelectedOptionIndexActionArgs = BaseWidgetActionArgs & {
    selectedOptionIndex: number;
};
type UpdateWidgetResultStateActionArgs = BaseWidgetActionArgs & {
    widgetResultState: WidgetResultState;
};
type UpdateWidgetStateActionArgs = BaseWidgetActionArgs & {
    widgetState: Partial<WidgetState>;
};
type UpdateWidgetAverageMagnitudeArgs = BaseWidgetActionArgs & {
    averageMagnitude: string;
};

type IUpdateNumberPredictionOptionActionArg = {
    widgetId: string;
    numberOption: INumberPredictionItemOption;
    optionIndex: number;
};

type IUpdateSliderMagnitudeAction = {
    widgetId: string;
    magnitude: number;
};

type TimelineWidgetState = {
    widgetId: string;
    widgetKind: WidgetKind$1;
};
type TimelineWidgetsState = {
    widgets: TimelineWidgetState[];
};
type BaseTimelineWidgetsActionArgs = {
    programId: string;
};
type updateTimelineWidgetStateActionArgs = BaseTimelineWidgetsActionArgs & {
    widgetTimelineState: TimelineWidgetsState;
};
type UpdateTimelineWidgetsActionArgs = BaseTimelineWidgetsActionArgs & {
    widgets: TimelineWidgetState[];
    prepend?: boolean;
};

type IUpdateTextAskInputTextAction = {
    widgetId: string;
    inputText: string;
};

declare function useFonts(): {
    fonts: LLFonts;
    setFonts: ({ fonts }: SetThemeFontsActionArg) => void;
};

type UseFontFamilyArgs = {
    style: StyleProp<TextStyle>;
};
/**
 * @description useFontFamily hook returns an evaluated fontFamily based on fontWeight and fontStyle
 * This is useful in case of custom fonts.
 * @returns fontFamily and fontFamilyType
 */
declare function useFontFamily({ style }: UseFontFamilyArgs): {
    fontFamily: FontWeightType;
    fontFamilyType: FontFamilyType;
};

type UseStylesArg<TStyles> = {
    componentStylesFn: LLComponentStyleFn<TStyles>;
    stylesProp?: Partial<TStyles>;
};
declare function useStyles<TStyles>({ componentStylesFn, stylesProp, }: UseStylesArg<TStyles>): TStyles;

declare function useApi<ApiResponse = unknown>(apiFunction: () => Promise<ApiResponse>): {
    data: ApiResponse;
    error: string;
    isLoading: boolean;
    onApi: () => Promise<ApiResponse>;
};

type GifPickerState = {
    gifImages: IGif[];
    isLoading: boolean;
    error: null;
};
declare function useGifPicker(): {
    isLoading: boolean;
    gifImages: IGif[];
    loadNextGifImages: () => Promise<void>;
    onGifSearchInputChange: (gifSearchInput: any, { debounce }?: {
        debounce: boolean;
    }) => void;
    error: null;
};

declare function useBanner(): {
    banners: Banner[];
};

declare function useBannerActions(): {
    addBannerItem: ({ bannerType, bannerMessage }: {
        bannerType: any;
        bannerMessage: any;
    }) => void;
};

type UseAutoHideBannerEffectArg = {
    bannerAutoHideTimeout?: number;
};
declare const DEFAULT_BANNER_AUTO_HIDE_TIMEOUT = 4000;
declare function useAutoHideBannerEffect({ bannerAutoHideTimeout, }: {
    bannerAutoHideTimeout?: number;
}): void;

type UseReactionPackArg = {
    reactionSpaceId: string;
};
declare function useReactionPacks({ reactionSpaceId }: UseReactionPackArg): {
    reactionPacks: IReactionPack[];
};

type UserReactionState = IUserReactionCountDetail & {
    imageSrc: string;
};
type UserReactionsForTargetIdState = {
    [key: string]: UserReactionState;
};
type UseUserReactionsArg = {
    reactionSpaceId: string;
    targetId: string;
};
declare function useUserReactions({ reactionSpaceId, targetId, }: UseUserReactionsArg): {
    userReactions: UserReactionsForTargetIdState;
};

type UseMessageItemPopoverArg = {
    messageId?: string;
};
declare function useMessageItemPopover(arg?: UseMessageItemPopoverArg): {
    popoverDetail: PopoverDetail;
    showPopover: (args: PopoverDetail) => void;
    hidePopover: () => void;
};

declare function useAutoScroll({ ref }: {
    ref: RefObject<FlatList>;
}): {
    onScrollEndDrag: () => void;
    onContentSizeChangeHandler: (width: number, height: number) => void;
};

type UseLoadReactionPackArg = {
    reactionSpaceId: string;
};
declare function useLoadReactionPacksEffect({ reactionSpaceId, }: UseLoadReactionPackArg): void;

type UseReactionSpaceArg = {
    targetGroupId: string;
};
declare function useReactionSpace({ targetGroupId }: UseReactionSpaceArg): {
    reactionSpace: _livelike_javascript.IReactionSpace;
};

type UseLoadUserReactionsArg = {
    reactionSpaceId: string;
};
declare function useLoadUserReactions({ reactionSpaceId, }: UseLoadUserReactionsArg): {
    loadUserReactions: ({ targetIds }: {
        targetIds: string[];
    }) => void;
};

declare function useUserReactionsEffect({ reactionSpaceId }: {
    reactionSpaceId: any;
}): void;

declare function useSelectedFieldStore<Store extends LLStore<unknown>, SelectedValue>(store: Store, selectorFn?: () => SelectedValue): SelectedValue;

type UseLoadWidgetEffectArg = {
    widgetId: string;
    widgetKind: WidgetKind$1;
    programId: string;
};
declare function useLoadWidgetEffect({ widgetId, widgetKind, programId, }: UseLoadWidgetEffectArg): {
    isLoading: boolean;
    data: readonly [_livelike_javascript.IWidgetPayload, _livelike_javascript.IWidgetInteraction[], _livelike_javascript.IWidgetEarnableReward[]];
    onApi?: undefined;
    error?: undefined;
} | {
    onApi: () => Promise<readonly [_livelike_javascript.IWidgetPayload, _livelike_javascript.IWidgetInteraction[], _livelike_javascript.IRewardTransaction[]]>;
    isLoading: boolean;
    error: string;
    data: readonly [_livelike_javascript.IWidgetPayload, _livelike_javascript.IWidgetInteraction[], _livelike_javascript.IRewardTransaction[]];
};

type UseWidgetArg = {
    widgetId: string;
};
declare function useWidget({ widgetId }: UseWidgetArg): IWidgetPayload;

type UseWidgetInteractionsArg = {
    widgetId: string;
};
declare function useWidgetInteractions({ widgetId }: UseWidgetInteractionsArg): IWidgetInteraction[];

type UseWidgetActionsArg = {
    widgetId: string;
};
declare function useWidgetActions({ widgetId }: UseWidgetActionsArg): {
    updateWidgetUIPhaseAction: ({ widgetId, widgetUIPhase, }: UpdateWidgetPhaseActionArgs) => void;
    updateWidgetChoicesAction: ({ widgetId, widgetChoices, }: UpdateWidgetChoicesActionArgs) => void;
    updateWidgetOptionsAction: ({ widgetId, widgetOptions, }: UpdateWidgetOptionsActionArgs) => void;
    updateSelectedOptionIndexAction: ({ widgetId, selectedOptionIndex, }: UpdateSelectedOptionIndexActionArgs) => void;
    updateWidgetResultStateAction: ({ widgetId, widgetResultState, }: UpdateWidgetResultStateActionArgs) => void;
    updateWidgetStateAction: ({ widgetId, widgetState, }: UpdateWidgetStateActionArgs) => void;
    updateWidgetAverageMagnitude: ({ widgetId, averageMagnitude, }: UpdateWidgetAverageMagnitudeArgs) => void;
    updateNumberPredictionOptionAction: ({ widgetId, numberOption, optionIndex, }: IUpdateNumberPredictionOptionActionArg) => void;
    updateEmojiSliderMagnitudeAction: ({ widgetId, magnitude, }: IUpdateSliderMagnitudeAction) => void;
    updateTextAskInputTextAction: ({ widgetId, inputText, }: IUpdateTextAskInputTextAction) => void;
};

type UseWidgetOptionsArg = {
    widgetId: string;
};
declare function useWidgetOptions({ widgetId, }: UseWidgetOptionsArg): IWidgetOptionItem$1[];

type UseSelectedWidgetOption = {
    widgetId: string;
};
declare function useInteractedWidgetOption({ widgetId }: {
    widgetId: any;
}): _livelike_javascript.IWidgetOptionItem | _livelike_javascript.IWidgetChoiceItem;

type UseWidgetSelectedOptionIndexArg = {
    widgetId: string;
};
declare function useWidgetSelectedOptionIndex({ widgetId, }: UseWidgetSelectedOptionIndexArg): number;

type UseWidgetResultStateArg = {
    widgetId: string;
};
declare function useWidgetResultState({ widgetId }: UseWidgetResultStateArg): WidgetResultState;

type UseWidgetUIPhaseArg = {
    widgetId: string;
};
declare const useWidgetUIPhase: ({ widgetId }: UseWidgetUIPhaseArg) => WidgetUIPhase;

type UseIsWidgetDisabledArg = {
    widgetId: string;
};
declare const useIsWidgetDisabled: ({ widgetId }: UseIsWidgetDisabledArg) => boolean;

type UseIsWidgetOptionDisabledArg = {
    widgetId: string;
    optionIndex: number;
};
declare const useIsWidgetOptionDisabled: ({ widgetId, optionIndex, }: UseIsWidgetOptionDisabledArg) => boolean;

type UseWidgetInteractionActionsArg = {
    widgetId: string;
};
type WidgetUpdateInteractionActionArg = {
    interactionItem: IWidgetOptionItem$1;
};
type WidgetCreateInteractionActionArg = {
    interactionItem: IWidgetChoiceItem$1 | IWidgetOptionItem$1 | INumberPredictionItem | ISliderInteractionItem | ITextAskInteractionItem;
};
declare function useWidgetInteractionActions({ widgetId, }: UseWidgetInteractionActionsArg): {
    updateWidgetInteractionAction: ({ interactionItem }: WidgetUpdateInteractionActionArg) => Promise<void | _livelike_javascript.IWidgetInteraction>;
    createWidgetInteractionAction: ({ interactionItem }: WidgetCreateInteractionActionArg) => Promise<void | _livelike_javascript.IWidgetInteraction>;
};

type UseWidgetInteractiveTimeoutArg = {
    widgetId: string;
    /** custom interactiveTimeout, defaults to the timeout value set when creating widget in producer suite */
    interactiveTimeout?: number | null;
    /** function to be called when widget timeouts */
    onInteractiveTimeout?: () => void;
};
type UseWidgetInteractiveTimeoutResult = {
    /** resulted timeout value to be used by LLWidgetHeader */
    interactiveTimeout: number | null;
    /** resulted timeout handler function to be used by LLWidgetHeader */
    onInteractiveTimeout: () => void;
};
/**
 * @description useWidgetInteractiveTimeout hook is to derive resulted interactiveTimeout based on
 * the passed interactiveTimeout value that in turns drives widget UI phases.
 * For example, once the widget timeouts, widget UI phase would transition from INTERACTIVE to TIMED_OUT
 * which would turn the widget into a non interact-able widget.
 * Resulted interactiveTimeout value is used by `LLWidgetHeader` component.
 * @since 0.1.0
 */
declare const useWidgetInteractiveTimeout: ({ widgetId, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, }: UseWidgetInteractiveTimeoutArg) => UseWidgetInteractiveTimeoutResult;

type UseWidgetExpiryEffectArg = {
    widgetId: string;
};
/**
 * @description useWidgetExpiryEffect hook runs a timer to update widget UI phase to EXPIRED
 * once the expiry time has passed. Expiry time is set when creating widget from producer suite
 * @since 0.1.0
 */
declare function useWidgetExpiryEffect({ widgetId }: UseWidgetExpiryEffectArg): void;

type UseWidgetSponsorsArg = {
    widgetId: string;
};
declare function useWidgetSponsors({ widgetId }: UseWidgetSponsorsArg): ISponsorPayload[];

type UseWidgetKindArg = {
    widgetId: string;
};
declare function useWidgetKind({ widgetId }: UseWidgetKindArg): WidgetKind;

type UseWidgetChoicesArg = {
    widgetId: string;
};
declare function useWidgetChoices({ widgetId, }: UseWidgetChoicesArg): IWidgetChoiceItem$1[];

type UseWidgetRewardsArg = {
    widgetId: string;
};
declare function useWidgetRewards({ widgetId }: UseWidgetRewardsArg): IWidgetEarnableReward[];

type UseIsEndWidgetUIPhaseArg = {
    widgetId: string;
};
declare const useIsEndWidgetUIPhase: ({ widgetId, }: UseIsEndWidgetUIPhaseArg) => boolean;

type UseWidgetRewardsEffectArg = {
    widgetId: string;
};
declare const useWidgetRewardsEffect: ({ widgetId, }: UseWidgetRewardsEffectArg) => {
    slideInOutStyles: {
        translateY: any;
    }[];
};

type UseWidgetDismissArg = {
    widgetId: string;
    onDismiss?: () => void;
};
declare function useWidgetDismiss({ widgetId, onDismiss }: UseWidgetDismissArg): {
    dismiss: boolean;
    onDismissHandler: () => void;
};

type UsePredictionWidgetEffectArg = {
    widgetId: string;
    programId: string;
    inlineFollowUp?: boolean;
};
/**
 * @description Listens to prediction follow up updates, and updates widget state and return followup widget details
 * @param UsePredictionWidgetEffectArg
 * @returns object with "followUpWidget" prop
 */
declare const usePredictionWidgetEffect: ({ widgetId, programId, inlineFollowUp, }: UsePredictionWidgetEffectArg) => {
    followUpWidget: IWidgetPayload$1;
};

type UsePredictionClaimRewardEffectArg = {
    widgetId: string;
    widgetKind: WidgetKind$1;
};
/**
 * @description `usePredictionClaimRewardEffect` hook claims the prediction reward
 * whenever a prediction follow up based UI is rendered.
 * Internally it calls claimPredictionWidgetRewards JS API.
 */
declare function usePredictionClaimRewardEffect({ widgetId, widgetKind }: {
    widgetId: any;
    widgetKind: any;
}): void;

type UseUserNumberOptionsArg = {
    widgetId: string;
};
declare function useUserNumberOptions({ widgetId, }: UseUserNumberOptionsArg): INumberPredictionItemOption[];

type UseNumberPredictionWidgetOptionArg = {
    widgetId: string;
    optionIndex: number;
    numberOption: INumberPredictionItemOption;
};
type NumberPredictionWidgetOptionDetails = {
    widgetOption: IWidgetOptionItem$1;
    interactedNumberOption: INumberPredictionItemOption;
    showWidgetResult: boolean;
    isCorrect: boolean;
    isWidgetOptionDisabled: boolean;
};
declare function useNumberPredictionWidgetOption({ widgetId, optionIndex, numberOption, }: UseNumberPredictionWidgetOptionArg): NumberPredictionWidgetOptionDetails;

type UseUserSliderMagnitudeArg = {
    widgetId: string;
};
declare function useUserSliderMagnitude({ widgetId, }: UseUserSliderMagnitudeArg): number | undefined;

type UseEmojiSliderArg = {
    thumbImages: {
        min: number;
        imageUrl: string;
    }[];
    onSlidingComplete: (value: number) => void;
    onValueChange?: (value: number) => void;
    value: number;
    initialValue?: number;
};
/**
 * @description useEmojiSlider hook provides state logic and effects for LLEmojiSlider component
 */
declare const useEmojiSlider: ({ thumbImages, onValueChange, onSlidingComplete, initialValue, value, }: UseEmojiSliderArg) => {
    sliderInput: number;
    thumbImg: string;
    onSlidingCompleteHandler: ([value]: [any]) => void;
    onValueChangeHandler: ([value]: [any]) => void;
};

type UseLoadWidgetRewardsEffectArg = {
    widgetId: string;
};
declare function useLoadWidgetRewardsEffect({ widgetId }: {
    widgetId: any;
}): void;

type UseCheerMeterOnOptionPressArg = {
    widgetId: string;
    optionIndex: number;
    throttleTime: number;
};
declare const useCheerMeterOnOptionPress: ({ widgetId, optionIndex, throttleTime, }: UseCheerMeterOnOptionPressArg) => () => void;

type UseTimelineWidgetsArg = {
    programId: string;
};
declare function useTimelineWidgets({ programId }: UseTimelineWidgetsArg): TimelineWidgetState[];

type UseLoadTimelineWidgetEffectArg = {
    programId: string;
    mode: WidgetMode;
};
declare function useLoadTimelineWidgetEffect({ programId, mode, }: UseLoadTimelineWidgetEffectArg): {
    onApi: () => Promise<IWidgetDetails>;
    isLoading: boolean;
    error: string;
    data: IWidgetDetails;
    onLoadMore: () => Promise<void>;
};
type IWidgetDetails = [
    IWidgetPayload$1[],
    IWidgetKindInteractionsMap,
    IRewardTransaction[]
];

type useTimelineWidgetActionsArg = {
    programId: string;
};
declare function useTimelineWidgetActions({ programId, }: useTimelineWidgetActionsArg): {
    onWidgetInteractiveTimeout: (timedOutWidgetId: string) => void;
    updateTimelineWidgetStateAction: ({ programId, widgetTimelineState, }: updateTimelineWidgetStateActionArgs) => void;
    updateTimelineWidgetsAction: ({ programId, widgets, prepend, }: UpdateTimelineWidgetsActionArgs) => void;
};

type UseIsTimelineWidgetArg = {
    widgetId: string;
};
declare const useIsTimelineWidget: ({ widgetId }: UseIsTimelineWidgetArg) => boolean;

type UseTextAskInputTextArg = {
    widgetId: string;
};
declare function useTextAskInputText({ widgetId, }: UseTextAskInputTextArg): string | undefined;

type UseChatRoomActionsArg = {
    roomId: string;
};
declare function useChatRoomActions({ roomId }: UseChatRoomActionsArg): {
    updateChatConfig: (arg: UpdateChatConfigActionArg) => void;
    loadPrevMessages: () => Promise<IteratorResult<{
        messages: IChatMessageResponsePayload[];
    }, {
        messages: IChatMessageResponsePayload[];
    }>>;
};

declare function useAnalytics(): {
    getAnalyticsProvider: () => _livelike_javascript.IAnalyticsProvider;
    setAnalyticsProvider: (provider: _livelike_javascript.IAnalyticsProvider) => void;
    trackEvent: (event: string, trackObj: unknown) => void;
};

type UseChatMessageMenuItemActionsArg = {
    messageDetails: IChatMessage;
};
declare const useChatMessageMenuItemActions: ({ messageDetails, }: UseChatMessageMenuItemActionsArg) => {
    blockId: string;
    deleteMessageApiFn: () => Promise<any>;
    reportMessageApiFn: () => Promise<any>;
    blockUserApiFn: () => Promise<any>;
    unblockUserApiFn: () => Promise<any>;
    blockUnblockApiFn: () => Promise<any>;
};

type UseUserReactionActionsArg = {
    targetGroupId: string;
    targetId: string;
};
declare function useUserReactionActions({ targetGroupId, targetId, }: UseUserReactionActionsArg): {
    addReaction: (actionArgs: UpdateUserReactionActionArg) => void;
    removeReaction: (actionArgs: UpdateUserReactionActionArg, selfReactionId: string) => void;
};

type UseWidgetSubmitActionArg = {
    widgetId: string;
};
declare function useWidgetSubmitAction({ widgetId }: UseWidgetSubmitActionArg): {
    onInteractionSubmit: ({ interactionItem }: WidgetCreateInteractionActionArg) => Promise<void | IWidgetInteraction>;
};

type UseWidgetInteractedAnalyticsArgs = {
    widgetId: string;
};
declare function useWidgetInteractedAnalytics({ widgetId, }: UseWidgetInteractedAnalyticsArgs): {
    trackWidgetInteractedAction: <T>({ interactionItem }: {
        interactionItem: T;
    }) => void;
};

declare function useTrackKeyboardEffect(): void;

type useDebounceArgs = {
    callback: (...args: any[]) => void;
    timer: number;
};
declare function useDebounce({ callback, timer }: useDebounceArgs): (...args: any[]) => void;

type UseCustomFontStyleArgs = {
    style: StyleProp<TextStyle>;
};
/**
 * @description useCustomFontStyle hook returns an evaluated styles for Text based Component
 * based on fontWeight and fontStyle, these tweaked style are needed because of platform (IOS & Android)
 *  limitation for custom fonts
 * @returns styles
 */
declare function useCustomFontStyle({ style }: UseCustomFontStyleArgs): {
    color?: react_native.ColorValue;
    fontFamily?: string;
    fontSize?: number;
    letterSpacing?: number;
    lineHeight?: number;
    textAlign?: "center" | "auto" | "left" | "right" | "justify";
    textDecorationLine?: "none" | "underline" | "line-through" | "underline line-through";
    textDecorationStyle?: "solid" | "double" | "dotted" | "dashed";
    textDecorationColor?: react_native.ColorValue;
    textShadowColor?: react_native.ColorValue;
    textShadowOffset?: {
        width: number;
        height: number;
    };
    textShadowRadius?: number;
    textTransform?: "none" | "capitalize" | "uppercase" | "lowercase";
    userSelect?: "none" | "text" | "auto" | "contain" | "all";
    fontVariant?: react_native.FontVariant[];
    writingDirection?: "auto" | "ltr" | "rtl";
    backfaceVisibility?: "hidden" | "visible";
    backgroundColor?: react_native.ColorValue;
    borderBlockColor?: react_native.ColorValue;
    borderBlockEndColor?: react_native.ColorValue;
    borderBlockStartColor?: react_native.ColorValue;
    borderBottomColor?: react_native.ColorValue;
    borderBottomEndRadius?: string | react_native.AnimatableNumericValue;
    borderBottomLeftRadius?: string | react_native.AnimatableNumericValue;
    borderBottomRightRadius?: string | react_native.AnimatableNumericValue;
    borderBottomStartRadius?: string | react_native.AnimatableNumericValue;
    borderColor?: react_native.ColorValue;
    borderCurve?: "circular" | "continuous";
    borderEndColor?: react_native.ColorValue;
    borderEndEndRadius?: string | react_native.AnimatableNumericValue;
    borderEndStartRadius?: string | react_native.AnimatableNumericValue;
    borderLeftColor?: react_native.ColorValue;
    borderRadius?: string | react_native.AnimatableNumericValue;
    borderRightColor?: react_native.ColorValue;
    borderStartColor?: react_native.ColorValue;
    borderStartEndRadius?: string | react_native.AnimatableNumericValue;
    borderStartStartRadius?: string | react_native.AnimatableNumericValue;
    borderStyle?: "solid" | "dotted" | "dashed";
    borderTopColor?: react_native.ColorValue;
    borderTopEndRadius?: string | react_native.AnimatableNumericValue;
    borderTopLeftRadius?: string | react_native.AnimatableNumericValue;
    borderTopRightRadius?: string | react_native.AnimatableNumericValue;
    borderTopStartRadius?: string | react_native.AnimatableNumericValue;
    outlineColor?: react_native.ColorValue;
    outlineOffset?: react_native.AnimatableNumericValue;
    outlineStyle?: "solid" | "dotted" | "dashed";
    outlineWidth?: react_native.AnimatableNumericValue;
    opacity?: react_native.AnimatableNumericValue;
    elevation?: number;
    pointerEvents?: "none" | "auto" | "box-none" | "box-only";
    isolation?: "auto" | "isolate";
    cursor?: react_native.CursorValue;
    boxShadow?: string | readonly react_native.BoxShadowValue[];
    filter?: string | readonly react_native.FilterFunction[];
    mixBlendMode?: react_native.BlendMode;
    experimental_backgroundImage?: string | readonly react_native.GradientValue[];
    alignContent?: "center" | "flex-start" | "flex-end" | "stretch" | "space-between" | "space-around" | "space-evenly";
    alignItems?: react_native.FlexAlignType;
    alignSelf?: "auto" | react_native.FlexAlignType;
    aspectRatio?: string | number;
    borderBottomWidth?: number;
    borderEndWidth?: number;
    borderLeftWidth?: number;
    borderRightWidth?: number;
    borderStartWidth?: number;
    borderTopWidth?: number;
    borderWidth?: number;
    bottom?: react_native.DimensionValue;
    boxSizing?: "border-box" | "content-box";
    display?: "none" | "flex" | "contents";
    end?: react_native.DimensionValue;
    flex?: number;
    flexBasis?: react_native.DimensionValue;
    flexDirection?: "row" | "column" | "row-reverse" | "column-reverse";
    rowGap?: string | number;
    gap?: string | number;
    columnGap?: string | number;
    flexGrow?: number;
    flexShrink?: number;
    flexWrap?: "wrap" | "nowrap" | "wrap-reverse";
    height?: react_native.DimensionValue;
    justifyContent?: "center" | "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly";
    left?: react_native.DimensionValue;
    margin?: react_native.DimensionValue;
    marginBottom?: react_native.DimensionValue;
    marginEnd?: react_native.DimensionValue;
    marginHorizontal?: react_native.DimensionValue;
    marginLeft?: react_native.DimensionValue;
    marginRight?: react_native.DimensionValue;
    marginStart?: react_native.DimensionValue;
    marginTop?: react_native.DimensionValue;
    marginVertical?: react_native.DimensionValue;
    maxHeight?: react_native.DimensionValue;
    maxWidth?: react_native.DimensionValue;
    minHeight?: react_native.DimensionValue;
    minWidth?: react_native.DimensionValue;
    overflow?: "scroll" | "hidden" | "visible";
    padding?: react_native.DimensionValue;
    paddingBottom?: react_native.DimensionValue;
    paddingEnd?: react_native.DimensionValue;
    paddingHorizontal?: react_native.DimensionValue;
    paddingLeft?: react_native.DimensionValue;
    paddingRight?: react_native.DimensionValue;
    paddingStart?: react_native.DimensionValue;
    paddingTop?: react_native.DimensionValue;
    paddingVertical?: react_native.DimensionValue;
    position?: "absolute" | "relative" | "static";
    right?: react_native.DimensionValue;
    start?: react_native.DimensionValue;
    top?: react_native.DimensionValue;
    width?: react_native.DimensionValue;
    zIndex?: number;
    direction?: "inherit" | "ltr" | "rtl";
    inset?: react_native.DimensionValue;
    insetBlock?: react_native.DimensionValue;
    insetBlockEnd?: react_native.DimensionValue;
    insetBlockStart?: react_native.DimensionValue;
    insetInline?: react_native.DimensionValue;
    insetInlineEnd?: react_native.DimensionValue;
    insetInlineStart?: react_native.DimensionValue;
    marginBlock?: react_native.DimensionValue;
    marginBlockEnd?: react_native.DimensionValue;
    marginBlockStart?: react_native.DimensionValue;
    marginInline?: react_native.DimensionValue;
    marginInlineEnd?: react_native.DimensionValue;
    marginInlineStart?: react_native.DimensionValue;
    paddingBlock?: react_native.DimensionValue;
    paddingBlockEnd?: react_native.DimensionValue;
    paddingBlockStart?: react_native.DimensionValue;
    paddingInline?: react_native.DimensionValue;
    paddingInlineEnd?: react_native.DimensionValue;
    paddingInlineStart?: react_native.DimensionValue;
    shadowColor?: react_native.ColorValue;
    shadowOffset?: Readonly<{
        width: number;
        height: number;
    }>;
    shadowOpacity?: react_native.AnimatableNumericValue;
    shadowRadius?: number;
    transform?: string | readonly (({
        perspective: react_native.AnimatableNumericValue;
    } & {
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        rotate: react_native.AnimatableStringValue;
    } & {
        perspective?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        rotateX: react_native.AnimatableStringValue;
    } & {
        perspective?: never;
        rotate?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        rotateY: react_native.AnimatableStringValue;
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        rotateZ: react_native.AnimatableStringValue;
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        scale: react_native.AnimatableNumericValue;
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        scaleX: react_native.AnimatableNumericValue;
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        scaleY: react_native.AnimatableNumericValue;
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        translateX: react_native.AnimatableNumericValue | `${number}%`;
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        translateY: react_native.AnimatableNumericValue | `${number}%`;
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        skewX?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        skewX: react_native.AnimatableStringValue;
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewY?: never;
        matrix?: never;
    }) | ({
        skewY: react_native.AnimatableStringValue;
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        matrix?: never;
    }) | ({
        matrix: react_native.AnimatableNumericValue[];
    } & {
        perspective?: never;
        rotate?: never;
        rotateX?: never;
        rotateY?: never;
        rotateZ?: never;
        scale?: never;
        scaleX?: never;
        scaleY?: never;
        translateX?: never;
        translateY?: never;
        skewX?: never;
        skewY?: never;
    }))[];
    transformOrigin?: string | (string | number)[];
    transformMatrix?: number[];
    rotation?: react_native.AnimatableNumericValue;
    scaleX?: react_native.AnimatableNumericValue;
    scaleY?: react_native.AnimatableNumericValue;
    translateX?: react_native.AnimatableNumericValue;
    translateY?: react_native.AnimatableNumericValue;
    textAlignVertical?: "center" | "auto" | "top" | "bottom";
    verticalAlign?: "auto" | "top" | "bottom" | "middle";
    includeFontPadding?: boolean;
};

type LLUserReactionCountDetailStyles = {
    container: ViewStyle;
    reactionIcon: ImageStyle;
    reactionCountText: TextStyle;
    selfReactionContainer: ViewStyle;
    selfReactionCountText: TextStyle;
};
type LLUserReactionCountDetailProps = ComponentStyleProp<LLUserReactionCountDetailStyles> & {
    reaction: UserReactionState;
    onPress: (reactionId: string) => void;
};
declare const LLUserReactionCountDetail: ({ reaction, styles: stylesProp, onPress, }: LLUserReactionCountDetailProps) => React__default.JSX.Element;

type LLUserReactionCountsStyles = {
    reactionCountsContainer: ViewStyle;
    moreReactionsView: ViewStyle;
    moreReactionsText: TextStyle;
};
type LLUserReactionCountsProps = ComponentStyleProp<LLUserReactionCountsStyles> & {
    targetGroupId: string;
    targetId: string;
    showReactionPicker?: boolean;
    reactionsLimit?: number;
    onReactionItemPress?: () => void;
    UserReactionCountDetailComponent?: typeof LLUserReactionCountDetail;
    UserReactionCountDetailComponentStyles?: LLUserReactionCountDetailProps['styles'];
    MessageReactionPickerComponent?: typeof LLReactionPicker;
    MessageReactionPickerComponentStyles?: LLReactionPickerProps['styles'];
};
declare function LLUserReactionCounts({ targetGroupId, targetId, showReactionPicker, onReactionItemPress, styles: stylesProp, MessageReactionPickerComponentStyles, UserReactionCountDetailComponentStyles, reactionsLimit, UserReactionCountDetailComponent, MessageReactionPickerComponent, }: LLUserReactionCountsProps): React__default.JSX.Element;

type LLChatMessageItemFooterStyles = {
    footerContainer: ViewStyle;
    addReactionIcon: ImageStyle;
};
type LLChatMessageItemFooterProps = ComponentStyleProp<LLChatMessageItemFooterStyles> & {
    message: IChatUserMessage;
    UserReactionsCountComponent?: typeof LLUserReactionCounts;
    UserReactionsCountComponentStyles?: LLUserReactionCountsProps['styles'];
};
declare function LLChatMessageItemFooter({ message: messageDetails, styles: stylesProp, UserReactionsCountComponentStyles, UserReactionsCountComponent, }: LLChatMessageItemFooterProps): React__default.JSX.Element;

type LLChatMessageMenuStyles = {
    menuContainer: ViewStyle;
};
type LLChatMessageMenuProps = ComponentStyleProp<LLChatMessageMenuStyles> & PropsWithChildren<{
    visible: boolean;
}>;
declare function LLChatMessageMenu({ visible, styles: stylesProp, children, }: LLChatMessageMenuProps): React__default.JSX.Element;

type LLChatMessageMenuOptionStyles = {
    menuItem: ViewStyle;
    menuItemText: TextStyle;
    menuItemIcon: ImageStyle;
    menuItemTopDivider: ViewStyle;
    menuItemBottomDivider: ViewStyle;
};
type LLChatMessageMenuOptionProps<OnClickApiFnResponseData extends Promise<any>> = ComponentStyleProp<LLChatMessageMenuOptionStyles> & {
    icon: ImageSourcePropType;
    textDesc: string;
    divider?: Partial<{
        top: boolean;
        bottom: boolean;
    }>;
    onClickApiFn: () => OnClickApiFnResponseData;
};
declare function LLChatMessageMenuOption<OnClickApiFnResponseData extends Promise<any>>({ icon, textDesc, divider, onClickApiFn, styles: stylesProp, }: LLChatMessageMenuOptionProps<OnClickApiFnResponseData>): React__default.JSX.Element;

type LLChatMessageItemStyles = {
    messageItemContainer: ViewStyle;
    selfMessageItemContainer: ViewStyle;
};
type LLChatMessageItemProps = ComponentStyleProp<LLChatMessageItemStyles> & {
    message: IChatMessage;
    MessageItemBodyComponent?: typeof LLChatMessageItemBody;
    MessageItemBodyComponentStyles?: LLChatMessageItemBodyProps['styles'];
    MessageItemHeaderComponent?: typeof LLChatMessageItemHeader;
    MessageItemHeaderComponentStyles?: LLChatMessageItemHeaderProps['styles'];
    MessageItemFooterComponent?: typeof LLChatMessageItemFooter;
    MessageItemFooterComponentStyles?: LLChatMessageItemFooterProps['styles'];
    MessageItemMenuComponent?: typeof LLChatMessageMenu;
    MessageItemMenuOptionComponent?: typeof LLChatMessageMenuOption;
};
declare const LLChatMessageItem: React__default.MemoExoticComponent<({ message: messageDetails, styles: stylesProp, MessageItemBodyComponentStyles, MessageItemHeaderComponentStyles, MessageItemFooterComponentStyles, MessageItemBodyComponent, MessageItemHeaderComponent, MessageItemFooterComponent, MessageItemMenuComponent, MessageItemMenuOptionComponent, }: LLChatMessageItemProps) => React__default.JSX.Element>;

type LLMessageListEmptyComponentStyles = {
    container: ViewStyle;
    text: TextStyle;
};
type LLMessageListEmptyComponentProps = ComponentStyleProp<LLMessageListEmptyComponentStyles> & {
    emptyMessageText?: string;
};
declare function LLMessageListEmptyComponent({ styles: stylesProp, emptyMessageText, }: LLMessageListEmptyComponentProps): React__default.JSX.Element;

type LLLoadActionButtonStyles = {
    buttonContainer: ViewStyle;
    button: ViewStyle;
    disabledbutton: ViewStyle;
    buttonText: TextStyle;
    disabledButtonText: TextStyle;
};
type LLLoadActionButtonComponentProps = ComponentStyleProp<LLLoadActionButtonStyles> & {
    label?: string;
    actionInProgressLabel?: string;
    onPress: () => Promise<unknown>;
};
declare function LLLoadActionButtonComponent({ onPress, label, actionInProgressLabel, styles: stylesProp, }: LLLoadActionButtonComponentProps): React__default.JSX.Element;

type LLChatMessageListStyles = {
    rootContainer: ViewStyle;
    listLoadingIndicator: ViewStyle;
};
type LLChatMessageListProps = ComponentStyleProp<LLChatMessageListStyles> & {
    roomId: string;
    MessageItemComponent?: typeof LLChatMessageItem;
    MessageItemComponentStyles?: LLChatMessageItemProps['styles'];
    MessageListComponent?: typeof FlatList;
    MessageListLoadingComponent?: ComponentType<unknown>;
    MessageListEmptyComponent?: typeof LLMessageListEmptyComponent;
    LoadPrevButtonComponent?: typeof LLLoadActionButtonComponent;
    MessageListEmptyComponentStyles?: LLMessageListEmptyComponentProps['styles'];
};
declare function LLChatMessageList({ roomId, styles: stylesProp, MessageListComponent, MessageItemComponent, MessageListEmptyComponent, LoadPrevButtonComponent, MessageItemComponentStyles, MessageListLoadingComponent, MessageListEmptyComponentStyles, }: LLChatMessageListProps): React__default.JSX.Element;

type LLComposerSendButtonStyles = {
    buttonContainer: ViewStyle;
    icon: ImageStyle;
};
type LLComposerSendButtonProps = ComponentStyleProp<LLComposerSendButtonStyles> & {
    onPress: () => void;
    isSendingMessage: boolean;
    disabled?: boolean;
};
declare function LLComposerSendButton({ onPress, disabled, styles: stylesProp, isSendingMessage, }: LLComposerSendButtonProps): React__default.JSX.Element;

type LLPickerEmptyComponentStyles = {
    text: TextStyle;
};
type LLPickerEmptyComponentProps = ComponentStyleProp<LLPickerEmptyComponentStyles>;
declare function LLPickerEmptyComponent({ styles: stylesProp, }: LLPickerEmptyComponentProps): React__default.JSX.Element;

type LLBasePickerStyles = {
    pickerContainer: ViewStyle;
    pickerItemsScrollview: ViewStyle;
    pickerItemContainer: ViewStyle;
    pickerLoadingIndicator: ViewStyle;
};
type BasePickerData = {
    id: string;
};
type LLBasePickerProps<TItem extends BasePickerData> = ComponentStyleProp<LLBasePickerStyles> & {
    visible: boolean;
    loading?: boolean;
    packItems: TItem[];
    EmptyPickerComponent?: typeof LLPickerEmptyComponent;
    PickerItemComponent: ({ item }: {
        item: TItem;
    }) => JSX.Element;
    PickerHeaderComponent?: () => JSX.Element;
};
declare function LLBasePicker<TItem extends BasePickerData>({ visible, loading, packItems, styles: stylesProp, EmptyPickerComponent, PickerItemComponent, PickerHeaderComponent, }: LLBasePickerProps<TItem>): React__default.JSX.Element;

type LLGifPickerHeaderStyles = {
    headerContainer: ViewStyle;
    searchInput: ViewStyle;
    closeIcon: ImageStyle;
};
type LLGifPickerHeaderProps = ComponentStyleProp<LLGifPickerHeaderStyles> & {
    onSearchInputChange: ReturnType<typeof useGifPicker>['onGifSearchInputChange'];
    closeGifPicker: () => void;
};
declare function LLGifPickerHeader({ onSearchInputChange, closeGifPicker, styles: stylesProp, }: LLGifPickerHeaderProps): React__default.JSX.Element;

type LLGifPickerStyles = {
    gifImage: ImageStyle;
    gifImageContainer: ViewStyle;
};
type LLGifPickerProps = ComponentStyleProp<LLGifPickerStyles> & {
    visible?: boolean;
    onPanelOpen?: () => void;
    onPanelClose?: () => void;
    closeGifPicker?: () => void;
    onSelectGif: (gifImage: IGif) => void;
    PickerComponentStyles?: LLBasePickerProps<BasePickerData>['styles'];
    GifPickerHeaderComponentStyles?: LLGifPickerHeaderProps['styles'];
    GifPickerHeaderComponent?: typeof LLGifPickerHeader;
};
/**
 * @description Provides stock UI for the GIF picker component.
 * @param {Function} onPanelOpen - A callback function to be called when the panel opens. It is used for tracking analytics events when the component becomes visible.
 * @param {Function} onPanelClose - A callback function to be called when the panel closes. It is used for tracking analytics events when the component is unmounted as it becomes invisible.
 * @returns {JSX.Element} - Stock UI for the GIF picker.
 */
declare function LLGifPicker({ visible, onPanelOpen, onPanelClose, closeGifPicker, onSelectGif, styles: stylesProp, PickerComponentStyles, GifPickerHeaderComponentStyles, GifPickerHeaderComponent, }: LLGifPickerProps): React__default.JSX.Element;

type LLStickerPickerStyles = {
    stickerPacksContainer: ViewStyle;
    stickerPackIcon: ImageStyle;
    stickerImage: ImageStyle;
    stickerImageContainer: ViewStyle;
    stickerHeaderContainer: ViewStyle;
    pickerCloseIcon: ImageStyle;
};
type LLStickerPickerProps = ComponentStyleProp<LLStickerPickerStyles> & {
    visible?: boolean;
    onPanelOpen?: () => void;
    onPanelClose?: () => void;
    closeStickerPicker?: () => void;
    onSelectSticker: (stickerShortcode: string) => void;
    PickerComponentStyles?: LLBasePickerProps<BasePickerData>['styles'];
};
/**
 * @description Provides stock UI for the Sticker picker component.
 * @param {Function} onPanelOpen - A callback function to be called when the panel opens. It is used for tracking analytics events when the component becomes visible.
 * @param {Function} onPanelClose - A callback function to be called when the panel closes. It is used for tracking analytics events when the component is unmounted as it becomes invisible.
 * @returns {JSX.Element} - Stock UI for the Sticker picker.
 */
declare function LLStickerPicker({ visible, onPanelOpen, onPanelClose, closeStickerPicker, onSelectSticker, styles: stylesProp, PickerComponentStyles, }: LLStickerPickerProps): React__default.JSX.Element;

type LLChatMessageComposerStyles = {
    composerContainer: ViewStyle;
    composerInput: ViewStyle;
    composerIcon: ImageStyle;
};
type LLChatMessageComposerProps = ComponentStyleProp<LLChatMessageComposerStyles> & {
    roomId: string;
    TextInputComponent?: typeof TextInput;
    GifPickerComponent?: typeof LLGifPicker;
    GifPickerComponentStyles?: LLGifPickerProps['styles'];
    StickerPickerComponent?: typeof LLStickerPicker;
    StickerPickerComponentStyles?: LLStickerPickerProps['styles'];
    SendButtonComponent?: typeof LLComposerSendButton;
    SendButtonComponentStyles?: LLComposerSendButtonProps['styles'];
};
declare function LLChatMessageComposer({ roomId, styles: stylesProp, TextInputComponent, GifPickerComponentStyles, StickerPickerComponentStyles, SendButtonComponentStyles, StickerPickerComponent, GifPickerComponent, SendButtonComponent, }: LLChatMessageComposerProps): React__default.JSX.Element;

type LLChatHeaderStyles = {
    headerContainer: ViewStyle;
    headerTitle: TextStyle;
};
type LLChatHeaderProps = ComponentStyleProp<LLChatHeaderStyles> & {
    title: string;
};
declare function LLChatHeader({ title, styles: stylesProp }: LLChatHeaderProps): React__default.JSX.Element;

type LLChatBannerItemStyles = {
    itemContainer: ViewStyle;
    bannerIndicator: ViewStyle;
    bannerText: TextStyle;
};
type LLChatBannerItemProps = ComponentStyleProp<LLChatBannerItemStyles> & {
    message: string;
    type: BannerType;
};
declare function LLChatBannerItem({ message, type, styles: stylesProp, }: LLChatBannerItemProps): React__default.JSX.Element;

type LLChatBannerStyles = {
    bannerContainer: ViewStyle;
};
type LLChatBannerProps = ComponentStyleProp<LLChatBannerStyles> & {
    bannerAutoHideTimeout?: number;
    BannerItemComponent?: typeof LLChatBannerItem;
    BannerItemComponentStyles?: LLChatBannerItemProps['styles'];
};
declare function LLChatBanner({ styles: stylesProp, bannerAutoHideTimeout, BannerItemComponent, }: LLChatBannerProps): React__default.JSX.Element;

type LLChatStyles = {
    chatContainer: ViewStyle;
};
type LLChatProps = ComponentStyleProp<LLChatStyles> & {
    roomId: string;
    userAvatarUrl?: string;
    HeaderComponent?: typeof LLChatHeader;
    HeaderComponentStyles?: LLChatHeaderProps['styles'];
    BannerComponent?: typeof LLChatBanner;
    BannerComponentStyles?: LLChatBannerProps['styles'];
    MessageListComponent?: typeof LLChatMessageList;
    MessageListComponentStyles?: LLChatMessageListProps['styles'];
    MessageComposerComponent?: typeof LLChatMessageComposer;
    MessageComposerComponentStyles?: LLChatMessageComposerProps['styles'];
};
declare function LLChat({ roomId, userAvatarUrl, HeaderComponent, BannerComponent, MessageListComponent, MessageComposerComponent, styles: stylesProp, BannerComponentStyles, HeaderComponentStyles, MessageComposerComponentStyles, MessageListComponentStyles, }: LLChatProps): React__default.JSX.Element;

type LLThemeSwitchStyles = {
    imageContainer: ViewStyle;
    image: ImageStyle;
};
type LLThemeSwitchProps = ComponentStyleProp<LLThemeSwitchStyles> & {
    switchIcon?: ImageProps['source'];
};
declare function LLThemeSwitch({ switchIcon, styles: stylesProp, }: LLThemeSwitchProps): React__default.JSX.Element;

type LLEndWidgetUIPhaseLabelStyles = {
    container: ViewStyle;
    label: TextStyle;
};
type LLEndWidgetUIPhaseLabelProps = ComponentStyleProp<LLEndWidgetUIPhaseLabelStyles> & {
    widgetId: string;
};
declare function LLEndWidgetUIPhaseLabel({ widgetId, styles: stylesProp, }: LLEndWidgetUIPhaseLabelProps): React__default.JSX.Element;

type LLWidgetRewardStyles = {
    slidingRewardText: TextStyle;
    singleRewardText: TextStyle;
};
type LLWidgetRewardProps = ComponentStyleProp<LLWidgetRewardStyles> & {
    widgetReward: IWidgetEarnableReward$1;
    multipleReward?: boolean;
    slideInOutStyle?: {
        translateY: Animated.AnimatedInterpolation<number>;
    };
    widgetId: string;
};
declare function LLWidgetReward({ widgetId, slideInOutStyle, multipleReward, widgetReward, styles: stylesProp, }: LLWidgetRewardProps): React__default.JSX.Element;

type LLWidgetRewardsStyles = {
    container: ViewStyle;
};
type LLWidgetRewardsProps = ComponentStyleProp<LLWidgetRewardsStyles> & {
    widgetId: string;
    RewardComponent?: typeof LLWidgetReward;
    RewardComponentStyles?: LLWidgetRewardProps['styles'];
};
declare function LLWidgetRewards({ widgetId, RewardComponent, RewardComponentStyles, styles: stylesProp, }: LLWidgetRewardsProps): React__default.JSX.Element;

type LLWidgetSubmitButtonStyles = {
    buttonContainer: ViewStyle;
    disabledButtonContainer: ViewStyle;
    buttonText: TextStyle;
    disabledButtonText: TextStyle;
};
type LLWidgetSubmitButtonProps = ComponentStyleProp<LLWidgetSubmitButtonStyles> & {
    widgetId: string;
};
type LLWidgetSubmitButtonComponentProps = ComponentStyleProp<LLWidgetSubmitButtonStyles> & {
    disabled?: boolean;
    label?: string;
    onPress: () => void;
};
declare function LLWidgetSubmitButtonComponent({ disabled, onPress, label, styles: stylesProp, }: LLWidgetSubmitButtonComponentProps): React__default.JSX.Element;

type LLWidgetActionInfoStyles = {
    container: ViewStyle;
};
type LLWidgetActionInfoProps = ComponentStyleProp<LLWidgetActionInfoStyles> & {
    widgetId: string;
    EndWidgetUIPhaseLabelComponent?: typeof LLEndWidgetUIPhaseLabel;
    EndWidgetUIPhaseLabelComponentStyles?: LLEndWidgetUIPhaseLabelProps['styles'];
    SubmitButtonComponent?: ComponentType<LLWidgetSubmitButtonProps>;
    SubmitButtonComponentStyles?: LLWidgetSubmitButtonProps['styles'];
    WidgetRewardsComponent?: typeof LLWidgetRewards;
    WidgetRewardsComponentStyles?: LLWidgetRewardsProps['styles'];
};
declare function LLWidgetActionInfo({ widgetId, SubmitButtonComponent, SubmitButtonComponentStyles, EndWidgetUIPhaseLabelComponent, EndWidgetUIPhaseLabelComponentStyles, WidgetRewardsComponent, WidgetRewardsComponentStyles, styles: stylesProp, }: LLWidgetActionInfoProps): React__default.JSX.Element;

type LLWidgetSponsorStyles = {
    container: ViewStyle;
    sponsorText: TextStyle;
    sponsorImage: ImageStyle;
};
type LLWidgetSponsorProps = ComponentStyleProp<LLWidgetSponsorStyles> & {
    widgetId: string;
};
declare function LLWidgetSponsor({ widgetId, styles: stylesProp, }: LLWidgetSponsorProps): React__default.JSX.Element;

type LLWidgetFooterStyles = {
    container: ViewStyle;
};
type LLWidgetFooterProps = ComponentStyleProp<LLWidgetFooterStyles> & {
    widgetId: string;
    ActionInfoComponent?: typeof LLWidgetActionInfo;
    ActionInfoComponentStyles?: LLWidgetActionInfoProps['styles'];
    SponsorComponent?: typeof LLWidgetSponsor;
    SponsorComponentStyles?: LLWidgetSponsorProps['styles'];
};
declare function LLWidgetFooter({ widgetId, styles: stylesProp, ActionInfoComponent, ActionInfoComponentStyles, SponsorComponent, SponsorComponentStyles, }: LLWidgetFooterProps): React__default.JSX.Element;

type LLWidgetInteractiveTimerStyles = {
    container: ViewStyle;
    innerContainer: ViewStyle;
};
type LLWidgetInteractiveTimerProps = ComponentStyleProp<LLWidgetInteractiveTimerStyles> & {
    interactiveTimeout?: number | null;
    onInteractiveTimeout?: () => void;
    updateInterval?: number;
};
declare function LLWidgetInteractiveTimer({ interactiveTimeout, styles: stylesProp, onInteractiveTimeout, updateInterval, }: LLWidgetInteractiveTimerProps): React__default.JSX.Element;

type LLWidgetHeaderDismissIconStyles = {
    container: ViewStyle;
    imageContainer: ViewStyle;
    image: ImageStyle;
};
type LLWidgetHeaderDismissIconProps = ComponentStyleProp<LLWidgetHeaderDismissIconStyles> & {
    onDismiss?: () => void;
};
declare function LLWidgetHeaderDismissIcon({ onDismiss, styles: stylesProp, }: LLWidgetHeaderDismissIconProps): React__default.JSX.Element;

type LLWidgetHeaderStyles = {
    headerContainer: ViewStyle;
    headerSubContainer: ViewStyle;
    title: TextStyle;
};
type LLWidgetHeaderProps = ComponentStyleProp<LLWidgetHeaderStyles> & Omit<LLWidgetInteractiveTimerProps, 'styles'> & {
    title?: string;
    dismissable?: boolean;
    onDismiss?: () => void;
    WidgetInteractiveTimerComponent?: typeof LLWidgetInteractiveTimer;
    WidgetInteractiveTimerComponentStyles?: LLWidgetInteractiveTimerProps['styles'];
    DismissIconComponent?: typeof LLWidgetHeaderDismissIcon;
    DismissIconComponentStyles?: LLWidgetHeaderDismissIconProps['styles'];
};
declare function LLWidgetHeader({ title, onDismiss, dismissable, interactiveTimeout, onInteractiveTimeout, styles: stylesProp, WidgetInteractiveTimerComponent, DismissIconComponent, WidgetInteractiveTimerComponentStyles, DismissIconComponentStyles, }: LLWidgetHeaderProps): React__default.JSX.Element;

type LLCoreWidgetStyles = {
    widgetContainer: ViewStyle;
    errorText: TextStyle;
};
type LLCoreWidgetChildrenProps = {
    widget: IWidgetPayload$1;
    onDismiss?: () => void;
};
type LLCoreWidgetProps = ComponentStyleProp<LLCoreWidgetStyles> & {
    programId: string;
    widgetId: string;
    widgetKind: WidgetKind$1;
    LoadingComponent?: ComponentType<unknown>;
    ErrorComponent?: ComponentType<unknown>;
    onDismiss?: () => void;
    children?: (props: LLCoreWidgetChildrenProps) => ReactNode;
};
declare function LLCoreWidget({ programId, widgetId, widgetKind, LoadingComponent, ErrorComponent, children, onDismiss, styles: stylesProp, }: LLCoreWidgetProps): React__default.JSX.Element;

type LLBaseWidgetProps = {
    programId: string;
    widgetId: string;
    widgetKind: WidgetKind$1;
    onDismiss?: () => void;
    interactiveTimeout?: number | null;
    onInteractiveTimeout?: () => void;
    WidgetComponent?: typeof LLCoreWidget;
    WidgetComponentStyles?: LLCoreWidgetProps['styles'];
    HeaderComponent?: typeof LLWidgetHeader;
    HeaderComponentStyles?: LLWidgetHeaderProps['styles'];
    FooterComponent?: typeof LLWidgetFooter;
    FooterComponentStyles?: LLWidgetFooterProps['styles'];
};

type LLWidgetOptionResultBarStyles = {
    resultBarContainer: ViewStyle;
    resultBarView: ViewStyle;
};
type LLWidgetOptionResultBarProps = ComponentStyleProp<LLWidgetOptionResultBarStyles> & {
    valueInPercent: number;
};
declare function LLWidgetOptionResultBar({ valueInPercent, styles: stylesProp, }: LLWidgetOptionResultBarProps): React__default.JSX.Element;

type LLWidgetOptionStyles = {
    optionContainer: ViewStyle;
    selectedOptionContainer: ViewStyle;
    correctOptionContainer: ViewStyle;
    incorrectOptionContainer: ViewStyle;
    optionImage: ImageStyle;
    optionTextContainer: ViewStyle;
    optionText: TextStyle;
    percentText: TextStyle;
};
type LLWidgetOptionProps = ComponentStyleProp<LLWidgetOptionStyles> & {
    optionIndex: number;
    percentage: number;
    optionImage?: string;
    optionText?: string;
    optionDisabled: boolean;
    showWidgetResult: boolean;
    selectedOptionIndex: number;
    correctOption?: boolean;
    onOptionChange: (optionIndex: number) => void;
    OptionResultBarComponent?: typeof LLWidgetOptionResultBar;
    OptionResultBarComponentStyles?: LLWidgetOptionResultBarProps['styles'];
};
declare function LLWidgetOption({ optionImage, optionText, optionDisabled, optionIndex, selectedOptionIndex, correctOption, onOptionChange, showWidgetResult, percentage, styles: stylesProp, OptionResultBarComponent, OptionResultBarComponentStyles, }: LLWidgetOptionProps): React__default.JSX.Element;

type LLWidgetVoteOptionProps = {
    widgetId: string;
    optionIndex: number;
    selectedOptionIndex: number;
    correctable?: boolean;
    onOptionChange: (optionIndex: number) => void;
    OptionComponent?: typeof LLWidgetOption;
    OptionComponentStyles?: LLWidgetOptionProps['styles'];
};
declare function LLWidgetVoteOption({ widgetId, optionIndex, selectedOptionIndex: selectedOptionIndexProp, onOptionChange, correctable, OptionComponent, OptionComponentStyles, }: LLWidgetVoteOptionProps): React__default.JSX.Element;

type LLWidgetChoiceOptionProps = {
    widgetId: string;
    optionIndex: number;
    selectedOptionIndex: number;
    onOptionChange: (optionIndex: number) => void;
    OptionComponent?: typeof LLWidgetOption;
    OptionComponentStyles?: LLWidgetOptionProps['styles'];
};
declare function LLWidgetChoiceOption({ widgetId, optionIndex, selectedOptionIndex: selectedOptionIndexProp, onOptionChange, OptionComponent, OptionComponentStyles, }: LLWidgetChoiceOptionProps): React__default.JSX.Element;

type LLVoteWidgetBodyStyles = {
    bodyContainer: ViewStyle;
};
type LLVoteWidgetBodyProps = ComponentStyleProp<LLVoteWidgetBodyStyles> & {
    widgetId: string;
    VoteOptionComponent?: typeof LLWidgetVoteOption;
    VoteOptionComponentStyles?: LLWidgetVoteOptionProps['OptionComponentStyles'];
};
declare function LLVoteWidgetBody({ widgetId, styles: stylesProp, VoteOptionComponent, VoteOptionComponentStyles, }: LLVoteWidgetBodyProps): React__default.JSX.Element;

type LLPollWidgetProps = LLBaseWidgetProps & {
    inlineFollowUp?: boolean;
    BodyComponent?: typeof LLVoteWidgetBody;
    BodyComponentStyles?: LLVoteWidgetBodyProps['styles'];
};
declare function LLPollWidget({ programId, widgetId, widgetKind, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLPollWidgetProps): React__default.JSX.Element;

type LLQuizWidgetBodyStyles = {
    bodyContainer: ViewStyle;
};
type LLQuizWidgetBodyProps = ComponentStyleProp<LLQuizWidgetBodyStyles> & {
    widgetId: string;
    ChoiceOptionComponent?: typeof LLWidgetChoiceOption;
    ChoiceOptionComponentStyles?: LLWidgetChoiceOptionProps['OptionComponentStyles'];
};
declare function LLQuizWidgetBody({ widgetId, styles: stylesProp, ChoiceOptionComponent, ChoiceOptionComponentStyles, }: LLQuizWidgetBodyProps): React__default.JSX.Element;

type LLQuizWidgetProps = LLBaseWidgetProps & {
    BodyComponent?: typeof LLQuizWidgetBody;
    BodyComponentStyles?: LLQuizWidgetBodyProps['styles'];
};
declare function LLQuizWidget({ programId, widgetId, widgetKind, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLQuizWidgetProps): React__default.JSX.Element;

declare function LLQuizWidgetActionInfo(props: LLWidgetActionInfoProps): React__default.JSX.Element;

type LLQuizWidgetSubmitButtonProps = LLWidgetSubmitButtonProps & {
    onPress?: (arg: {
        selectedOptionIndex: number;
    }) => void;
};
declare function LLQuizWidgetSubmitButton({ widgetId, styles, onPress, }: LLQuizWidgetSubmitButtonProps): React__default.JSX.Element;

type LLPredictionWidgetProps = LLBaseWidgetProps & {
    inlineFollowUp?: boolean;
    BodyComponent?: typeof LLVoteWidgetBody;
    BodyComponentStyles?: LLVoteWidgetBodyProps['styles'];
};
declare function LLPredictionWidget({ programId, widgetId, widgetKind, inlineFollowUp, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLPredictionWidgetProps): React__default.JSX.Element;

declare function LLPredictionFollowUpWidgetBody(props: LLVoteWidgetBodyProps): React__default.JSX.Element;
declare function LLPredictionFollowUpWidgetOption(props: LLWidgetVoteOptionProps): React__default.JSX.Element;

type LLPredictionFollowUpWidgetProps = LLBaseWidgetProps & {
    BodyComponent?: typeof LLPredictionFollowUpWidgetBody;
    BodyComponentStyles?: LLVoteWidgetBodyProps['styles'];
};
declare function LLPredictionFollowUpWidget({ programId, widgetId, widgetKind, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLPredictionFollowUpWidgetProps): React__default.JSX.Element;

declare function LLPredictionWidgetActionInfo(props: LLWidgetActionInfoProps): React__default.JSX.Element;

type LLNumberPredictionWidgetOptionStyles = {
    optionContainer: ViewStyle;
    validOptionContainer: ViewStyle;
    optionImage: ImageStyle;
    optionDescriptionContainer: ViewStyle;
    optionDescriptionText: TextStyle;
    resultContainer: ViewStyle;
    resultText: TextStyle;
    correctResultContainer: ViewStyle;
    incorrectResultContainer: ViewStyle;
    numberInput: TextStyle;
    correctNumberInput: TextStyle;
    incorrectNumberInput: TextStyle;
};
type LLNumberPredictionWidgetOptionProps = ComponentStyleProp<LLNumberPredictionWidgetOptionStyles> & {
    widgetId: string;
    optionIndex: number;
    numberOption: INumberPredictionItemOption;
    onOptionInputChange: (option: INumberPredictionItemOption, index: number) => void;
};
declare function LLNumberPredictionWidgetOption({ widgetId, optionIndex, numberOption, onOptionInputChange, styles: stylesProp, }: LLNumberPredictionWidgetOptionProps): React__default.JSX.Element;

type LLNumberPredictionWidgetBodyStyles = {
    bodyContainer: ViewStyle;
};
type LLNumberPredictionWidgetBodyProps = ComponentStyleProp<LLNumberPredictionWidgetBodyStyles> & {
    widgetId: string;
    OptionComponent?: typeof LLNumberPredictionWidgetOption;
    OptionComponentStyles?: LLNumberPredictionWidgetOptionProps['styles'];
};
declare function LLNumberPredictionWidgetBody({ widgetId, styles: stylesProp, OptionComponent, }: LLNumberPredictionWidgetBodyProps): React__default.JSX.Element;

type LLNumberPredictionWidgetProps = LLBaseWidgetProps & {
    inlineFollowUp?: boolean;
    BodyComponent?: typeof LLNumberPredictionWidgetBody;
    BodyComponentStyles?: LLNumberPredictionWidgetBodyProps['styles'];
};
declare function LLNumberPredictionWidget({ programId, widgetId, widgetKind, inlineFollowUp, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLNumberPredictionWidgetProps): React__default.JSX.Element;

type LLNumberPredictionFollowUpWidgetProps = LLBaseWidgetProps & {
    BodyComponent?: typeof LLNumberPredictionWidgetBody;
    BodyComponentStyles?: LLNumberPredictionWidgetBodyProps['styles'];
};
declare function LLNumberPredictionFollowUpWidget({ programId, widgetId, widgetKind, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLNumberPredictionFollowUpWidgetProps): React__default.JSX.Element;

type LLNumberPredictionWidgetSubmitButtonProps = LLWidgetSubmitButtonProps & {
    onPress?: (arg: {
        numberOptions: INumberPredictionItemOption[];
    }) => void;
};
declare function LLNumberPredictionWidgetSubmitButton({ widgetId, styles, onPress, }: LLNumberPredictionWidgetSubmitButtonProps): React__default.JSX.Element;

declare function LLNumberPredictionWidgetActionInfo(props: LLWidgetActionInfoProps): React__default.JSX.Element;

type LLEmojiSliderStyles = {
    thumpImage: ImageStyle;
    sliderTrack: ViewStyle;
    sliderThumbImage: ImageStyle;
    trackMarkContainer: ViewStyle;
    trackMarkLine: ViewStyle;
    trackMarkText: TextStyle;
    minimumTrackStyle: ViewStyle;
    maximumTrackStyle: ViewStyle;
};
type SliderUIComponentProps = SliderProps;
type LLEmojiSliderProps = ComponentStyleProp<LLEmojiSliderStyles> & {
    thumbImages: {
        min: number;
        imageUrl: string;
    }[];
    onSlidingComplete: (value: number) => void;
    onValueChange?: (value: number) => void;
    value: number;
    initialValue?: number;
    average?: number;
    disabled?: boolean;
    /** SliderProps from  @miblanchard/react-native-slider package*/
    sliderUIComponentProps?: SliderUIComponentProps;
};
declare function LLEmojiSlider({ styles: stylesProp, thumbImages, onValueChange, onSlidingComplete, initialValue, value, disabled, average, sliderUIComponentProps, }: LLEmojiSliderProps): React__default.JSX.Element;

type LLEmojiSliderWidgetBodyStyles = {
    bodyContainer: ViewStyle;
};
type LLEmojiSliderWidgetBodyProps = ComponentStyleProp<LLEmojiSliderWidgetBodyStyles> & {
    widgetId: string;
    SliderComponent?: typeof LLEmojiSlider;
    SliderComponentStyles?: LLEmojiSliderProps['styles'];
};
declare function LLEmojiSliderWidgetBody({ widgetId, styles: stylesProp, SliderComponent, SliderComponentStyles, }: LLEmojiSliderWidgetBodyProps): React__default.JSX.Element;

type LLEmojiSliderWidgetProps = Omit<LLBaseWidgetProps, 'widgetKind'> & {
    BodyComponent?: typeof LLEmojiSliderWidgetBody;
    BodyComponentStyles?: LLEmojiSliderWidgetBodyProps['styles'];
};
declare function LLEmojiSliderWidget({ programId, widgetId, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLEmojiSliderWidgetProps): React__default.JSX.Element;

type LLEmojiSliderWidgetSubmitButtonProps = LLWidgetSubmitButtonProps & {
    onPress?: (arg: {
        magnitude: number;
    }) => void;
};
declare function LLEmojiSliderWidgetSubmitButton({ widgetId, styles, onPress, }: LLEmojiSliderWidgetSubmitButtonProps): React__default.JSX.Element;

declare function LLEmojiSliderWidgetActionInfo(props: LLWidgetActionInfoProps): React__default.JSX.Element;

type LLCheerMeterWidgetOptionStyles = {
    optionContainer: ViewStyle;
    optionImage: ImageStyle;
};
type LLCheerMeterWidgetOptionProps = ComponentStyleProp<LLCheerMeterWidgetOptionStyles> & {
    widgetId: string;
    optionIndex: number;
    /** Throttle time in milliseconds used to throttle option press interaction */
    throttleTime?: number;
};
declare function LLCheerMeterWidgetOption({ widgetId, optionIndex, throttleTime, styles: stylesProp, }: LLCheerMeterWidgetOptionProps): React__default.JSX.Element;

type LLCheerMeterWidgetResultStyles = {
    resultContainer: ViewStyle;
    optionContainer: ViewStyle;
    leftOptionContainer: ViewStyle;
    rightOptionContainer: ViewStyle;
    optionText: TextStyle;
};
type LLCheerMeterWidgetResultProps = ComponentStyleProp<LLCheerMeterWidgetResultStyles> & {
    widgetId: string;
    widgetOptions: IWidgetOptionItem$1[];
};
declare function LLCheerMeterWidgetResult({ widgetOptions, styles: stylesProp, }: LLCheerMeterWidgetResultProps): React__default.JSX.Element;

type LLCheerMeterWidgetCheerCountStyles = {
    cheerCountContainer: ViewStyle;
    cheerCountText: TextStyle;
};
type LLCheerMeterWidgetCheerCountProps = ComponentStyleProp<LLCheerMeterWidgetCheerCountStyles> & {
    totalCheerCount: number;
};
declare function LLCheerMeterWidgetCheerCount({ totalCheerCount, styles: stylesProp, }: LLCheerMeterWidgetCheerCountProps): React__default.JSX.Element;

type LLCheerMeterWidgetBodyStyles = {
    bodyContainer: ViewStyle;
    optionContainer: ViewStyle;
};
type LLCheerMeterWidgetBodyProps = ComponentStyleProp<LLCheerMeterWidgetBodyStyles> & {
    widgetId: string;
    ResultComponent?: typeof LLCheerMeterWidgetResult;
    ResultComponentStyles?: LLCheerMeterWidgetResultProps['styles'];
    OptionComponent?: typeof LLCheerMeterWidgetOption;
    OptionComponentStyles?: LLCheerMeterWidgetOptionProps['styles'];
    CheerCountComponent?: typeof LLCheerMeterWidgetCheerCount;
    CheerCountComponentStyles?: LLCheerMeterWidgetCheerCountProps['styles'];
};
declare function LLCheerMeterWidgetBody({ widgetId, ResultComponent, OptionComponent, CheerCountComponent, ResultComponentStyles, OptionComponentStyles, CheerCountComponentStyles, styles: stylesProp, }: LLCheerMeterWidgetBodyProps): React__default.JSX.Element;

type LLCheerMeterWidgetProps = Omit<LLBaseWidgetProps, 'widgetKind'> & {
    inlineFollowUp?: boolean;
    BodyComponent?: typeof LLCheerMeterWidgetBody;
    BodyComponentStyles?: LLCheerMeterWidgetBodyProps['styles'];
};
declare function LLCheerMeterWidget({ programId, widgetId, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLCheerMeterWidgetProps): React__default.JSX.Element;

type LLAlertWidgetDetailStyles = {
    container: ViewStyle;
    text: TextStyle;
    image: ImageStyle;
};
type LLAlertWidgetDetailProps = ComponentStyleProp<LLAlertWidgetDetailStyles> & {
    text?: string;
    imageUrl?: string;
};
declare function LLAlertWidgetDetail({ text, imageUrl, styles: stylesProp, }: LLAlertWidgetDetailProps): React__default.JSX.Element;

type LLAlertWidgetLinkStyles = {
    container: ViewStyle;
    text: TextStyle;
};
type LLAlertWidgetLinkProps = ComponentStyleProp<LLAlertWidgetLinkStyles> & {
    label: string;
    url: string;
    onLinkPress?: (arg: {
        url: string;
    }) => void;
};
declare function LLAlertWidgetLink({ label, url, onLinkPress, styles: stylesProp, }: LLAlertWidgetLinkProps): React__default.JSX.Element;

type LLAlertWidgetBodyStyles = {
    container: ViewStyle;
};
type LLAlertWidgetBodyProps = ComponentStyleProp<LLAlertWidgetBodyStyles> & {
    widgetId: string;
    onLinkPress?: (arg: {
        url: string;
    }) => void;
    DetailComponent?: typeof LLAlertWidgetDetail;
    DetailComponentStyles?: LLAlertWidgetDetailProps['styles'];
    LinkComponent?: typeof LLAlertWidgetLink;
    LinkComponentStyles?: LLAlertWidgetLinkProps['styles'];
};
declare function LLAlertWidgetBody({ widgetId, onLinkPress, DetailComponent, LinkComponent, DetailComponentStyles, LinkComponentStyles, styles: stylesProp, }: LLAlertWidgetBodyProps): React__default.JSX.Element;

type LLAlertWidgetProps = Omit<LLBaseWidgetProps, 'widgetKind'> & {
    onLinkPress?: (arg: {
        url: string;
    }) => void;
    BodyComponent?: typeof LLAlertWidgetBody;
    BodyComponentStyles?: LLAlertWidgetBodyProps['styles'];
    SponsorComponent?: typeof LLWidgetSponsor;
    SponsorComponentStyles?: LLWidgetSponsorProps['styles'];
};
declare function LLAlertWidget({ programId, widgetId, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, onLinkPress, WidgetComponent, HeaderComponent, BodyComponent, SponsorComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, SponsorComponentStyles, }: LLAlertWidgetProps): React__default.JSX.Element;

type LLTextAskWidgetInputStyles = {
    container: ViewStyle;
    input: TextStyle;
};
type LLTextAskWidgetInputProps = ComponentStyleProp<LLTextAskWidgetInputStyles> & {
    value?: string;
    disabled?: boolean;
    onChange?: (input: string) => void;
    maxLength?: number;
    placeHolder?: string;
};
declare function LLTextAskWidgetInput({ value, disabled, onChange, maxLength, placeHolder, styles: stylesProp, }: LLTextAskWidgetInputProps): React__default.JSX.Element;

type LLTextAskWidgetBodyStyles = {
    container: ViewStyle;
    askText: TextStyle;
};
type LLTextAskWidgetBodyProps = ComponentStyleProp<LLTextAskWidgetBodyStyles> & {
    widgetId: string;
    InputComponent?: typeof LLTextAskWidgetInput;
    InputComponentStyles?: LLTextAskWidgetInputProps['styles'];
};
declare function LLTextAskWidgetBody({ widgetId, InputComponent, InputComponentStyles, styles: stylesProp, }: LLTextAskWidgetBodyProps): React__default.JSX.Element;

type LLTextAskWidgetProps = Omit<LLBaseWidgetProps, 'widgetKind'> & {
    BodyComponent?: typeof LLTextAskWidgetBody;
    BodyComponentStyles?: LLTextAskWidgetBodyProps['styles'];
};
declare function LLTextAskWidget({ programId, widgetId, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLTextAskWidgetProps): React__default.JSX.Element;

type LLTextAskWidgetActionInfoStyles = {
    container: ViewStyle;
    confirmMessageText: TextStyle;
};
type LLTextAskWidgetActionInfoProps = ComponentStyleProp<LLTextAskWidgetActionInfoStyles> & Omit<LLWidgetActionInfoProps, 'styles'> & {
    ActionInfoComponent?: typeof LLWidgetActionInfo;
    ActionInfoComponentStyles?: LLWidgetActionInfoProps['styles'];
};
declare function LLTextAskWidgetActionInfo({ widgetId, styles: stylesProp, ActionInfoComponent, ActionInfoComponentStyles, ...props }: LLTextAskWidgetActionInfoProps): React__default.JSX.Element;

type LLTextAskWidgetSubmitButtonProps = LLWidgetSubmitButtonProps & {
    onPress?: (arg: {
        inputText: string;
    }) => void;
};
declare function LLTextAskWidgetSubmitButton({ widgetId, styles, onPress, }: LLTextAskWidgetSubmitButtonProps): React__default.JSX.Element;

type LLSocialEmbedBodyStyles = {
    webview: ViewStyle;
    container: ViewStyle;
};
type LLSocialEmbedWidgetBodyProps = ComponentStyleProp$1<LLSocialEmbedBodyStyles> & {
    widgetId: string;
};
declare function LLSocialEmbedWidgetBody({ widgetId, styles: stylesProp, }: LLSocialEmbedWidgetBodyProps): React__default.JSX.Element;

type LLSocialEmbedWidgetProps = Omit<LLBaseWidgetProps, 'widgetKind'> & {
    BodyComponent?: typeof LLSocialEmbedWidgetBody;
    BodyComponentStyles?: LLSocialEmbedWidgetBodyProps['styles'];
};
declare function LLSocialEmbedWidget({ programId, widgetId, onDismiss: onDismissProp, interactiveTimeout: interactiveTimeoutProp, onInteractiveTimeout: onInteractiveTimeoutProp, WidgetComponent, HeaderComponent, BodyComponent, FooterComponent, WidgetComponentStyles, HeaderComponentStyles, BodyComponentStyles, FooterComponentStyles, }: LLSocialEmbedWidgetProps): React__default.JSX.Element;

type LLAllWidgetProps = LLPollWidgetProps | LLPredictionWidgetProps | LLPredictionFollowUpWidgetProps | LLQuizWidgetBodyProps | LLNumberPredictionWidgetProps | LLNumberPredictionFollowUpWidgetProps | LLEmojiSliderWidgetProps | LLCheerMeterWidgetProps | LLAlertWidgetProps | LLTextAskWidgetProps;
type LLWidgetProps = LLAllWidgetProps & {
    widgetKind: WidgetKind$1;
    PollWidgetComponent?: typeof LLPollWidget;
    QuizWidgetComponent?: typeof LLQuizWidget;
    PredictionWidgetComponent?: typeof LLPredictionWidget;
    PredictionFollowUpWidgetComponent?: typeof LLPredictionFollowUpWidget;
    NumberPredictionWidgetComponent?: typeof LLNumberPredictionWidget;
    NumberPredictionFollowUpWidgetComponent?: typeof LLNumberPredictionFollowUpWidget;
    EmojiSliderWidgetComponent?: typeof LLEmojiSliderWidget;
    CheerMeterWidgetComponent?: typeof LLCheerMeterWidget;
    AlertComponent?: typeof LLAlertWidget;
    TextAskComponent?: typeof LLTextAskWidget;
    VideoAlertComponent?: ComponentType<unknown>;
    SocialEmbedComponent?: ComponentType<unknown>;
};
declare function LLWidget({ widgetKind, PollWidgetComponent, QuizWidgetComponent, PredictionWidgetComponent, PredictionFollowUpWidgetComponent, NumberPredictionWidgetComponent, NumberPredictionFollowUpWidgetComponent, EmojiSliderWidgetComponent, CheerMeterWidgetComponent, AlertComponent, TextAskComponent, VideoAlertComponent, SocialEmbedComponent, ...rest }: LLWidgetProps): React__default.JSX.Element;

type LLWidgetSeparatorStyles = {
    container: ViewStyle;
};
type LLWidgetSeparatorProps = ComponentStyleProp<LLWidgetSeparatorStyles>;
declare function LLWidgetSeparator({ styles: stylesProp, }: LLWidgetSeparatorProps): React__default.JSX.Element;

type LLWidgetsLoadMoreButtonStyles = {
    container: ViewStyle;
    buttonContainer: ViewStyle;
    disabledButtonContainer: ViewStyle;
    buttonText: TextStyle;
    disabledButtonText: TextStyle;
    loadingIndicator: TextStyle;
};
type LLWidgetsLoadMoreButtonProps = ComponentStyleProp<LLWidgetsLoadMoreButtonStyles> & {
    disabled?: boolean;
    label?: string;
    onPress: () => Promise<void>;
};
declare function LLWidgetsLoadMoreButton({ disabled, onPress, label, styles: stylesProp, }: LLWidgetsLoadMoreButtonProps): React__default.JSX.Element;

type LLWidgetsStyles = {
    container: ViewStyle;
    errorContainer: ViewStyle;
    errorText: TextStyle;
};
type LLWidgetsProps = ComponentStyleProp<LLWidgetsStyles> & {
    programId: string;
    mode: WidgetMode;
    WidgetComponent?: typeof LLWidget;
    LoadingComponent?: ComponentType<unknown>;
    ErrorComponent?: ComponentType<unknown>;
    LoadMoreComponent?: typeof LLWidgetsLoadMoreButton;
    LoadMoreComponentStyles?: LLWidgetsLoadMoreButtonProps['styles'];
    WidgetSeparatorComponent?: ComponentType<unknown> | typeof LLWidgetSeparator;
    WidgetSeparatorComponentStyles?: LLWidgetSeparatorProps['styles'];
    onLoadMore?: () => void;
};
declare function LLWidgets({ programId, mode, onLoadMore: onLoadMoreProp, WidgetComponent, LoadingComponent, ErrorComponent, LoadMoreComponent, WidgetSeparatorComponent, WidgetSeparatorComponentStyles, LoadMoreComponentStyles, styles: stylesProp, }: LLWidgetsProps): React__default.JSX.Element;

declare function LLText({ children, style: styleProp, ...props }: TextProps): React__default.JSX.Element;

export { type Banner, BannerType, type BasePickerData, type ComponentStyleProp, DEFAULT_BANNER_AUTO_HIDE_TIMEOUT, type FontFamilyType, type FontWeightType, type GifPickerState, type IChatMessage, type IChatUserMessage, LLAlertWidget, LLAlertWidgetBody, type LLAlertWidgetBodyProps, type LLAlertWidgetBodyStyles, LLAlertWidgetDetail, type LLAlertWidgetDetailProps, type LLAlertWidgetDetailStyles, LLAlertWidgetLink, type LLAlertWidgetLinkProps, type LLAlertWidgetLinkStyles, type LLAlertWidgetProps, LLBasePicker, type LLBasePickerProps, type LLBasePickerStyles, LLChat, LLChatBanner, LLChatBannerItem, type LLChatBannerItemProps, type LLChatBannerItemStyles, type LLChatBannerProps, type LLChatBannerStyles, LLChatHeader, type LLChatHeaderProps, type LLChatHeaderStyles, LLChatMessageComposer, type LLChatMessageComposerProps, type LLChatMessageComposerStyles, LLChatMessageItem, LLChatMessageItemBody, type LLChatMessageItemBodyProps, type LLChatMessageItemBodyStyles, LLChatMessageItemBodyText, type LLChatMessageItemBodyTextProps, type LLChatMessageItemBodyTextStyles, LLChatMessageItemFooter, type LLChatMessageItemFooterProps, type LLChatMessageItemFooterStyles, LLChatMessageItemHeader, type LLChatMessageItemHeaderProps, type LLChatMessageItemHeaderStyles, type LLChatMessageItemProps, type LLChatMessageItemStyles, LLChatMessageList, type LLChatMessageListProps, type LLChatMessageListStyles, LLChatMessageMenu, LLChatMessageMenuOption, type LLChatMessageMenuOptionProps, type LLChatMessageMenuOptionStyles, type LLChatMessageMenuProps, type LLChatMessageMenuStyles, type LLChatProps, type LLChatStyles, LLCheerMeterWidget, LLCheerMeterWidgetBody, type LLCheerMeterWidgetBodyProps, type LLCheerMeterWidgetBodyStyles, LLCheerMeterWidgetCheerCount, type LLCheerMeterWidgetCheerCountProps, type LLCheerMeterWidgetCheerCountStyles, LLCheerMeterWidgetOption, type LLCheerMeterWidgetOptionProps, type LLCheerMeterWidgetOptionStyles, type LLCheerMeterWidgetProps, LLCheerMeterWidgetResult, type LLCheerMeterWidgetResultProps, type LLCheerMeterWidgetResultStyles, type LLComponentStyleFn, LLComposerSendButton, type LLComposerSendButtonProps, type LLComposerSendButtonStyles, LLCoreWidget, type LLCoreWidgetChildrenProps, type LLCoreWidgetProps, type LLCoreWidgetStyles, LLEmojiSlider, type LLEmojiSliderProps, type LLEmojiSliderStyles, LLEmojiSliderWidget, LLEmojiSliderWidgetActionInfo, LLEmojiSliderWidgetBody, type LLEmojiSliderWidgetBodyProps, type LLEmojiSliderWidgetBodyStyles, type LLEmojiSliderWidgetProps, LLEmojiSliderWidgetSubmitButton, type LLEmojiSliderWidgetSubmitButtonProps, LLEndWidgetUIPhaseLabel, type LLEndWidgetUIPhaseLabelProps, type LLEndWidgetUIPhaseLabelStyles, type LLFonts, LLGifPicker, LLGifPickerHeader, type LLGifPickerHeaderProps, type LLGifPickerHeaderStyles, type LLGifPickerProps, type LLGifPickerStyles, LLMessageListEmptyComponent, type LLMessageListEmptyComponentProps, type LLMessageListEmptyComponentStyles, LLNumberPredictionFollowUpWidget, type LLNumberPredictionFollowUpWidgetProps, LLNumberPredictionWidget, LLNumberPredictionWidgetActionInfo, LLNumberPredictionWidgetBody, type LLNumberPredictionWidgetBodyProps, type LLNumberPredictionWidgetBodyStyles, LLNumberPredictionWidgetOption, type LLNumberPredictionWidgetOptionProps, type LLNumberPredictionWidgetOptionStyles, type LLNumberPredictionWidgetProps, LLNumberPredictionWidgetSubmitButton, type LLNumberPredictionWidgetSubmitButtonProps, LLPollWidget, type LLPollWidgetProps, LLPredictionFollowUpWidget, LLPredictionFollowUpWidgetBody, LLPredictionFollowUpWidgetOption, type LLPredictionFollowUpWidgetProps, LLPredictionWidget, LLPredictionWidgetActionInfo, type LLPredictionWidgetProps, LLQuizWidget, LLQuizWidgetActionInfo, LLQuizWidgetBody, type LLQuizWidgetBodyProps, type LLQuizWidgetBodyStyles, type LLQuizWidgetProps, LLQuizWidgetSubmitButton, type LLQuizWidgetSubmitButtonProps, LLReactionPicker, LLReactionPickerItem, type LLReactionPickerItemProps, type LLReactionPickerItemStyles, type LLReactionPickerProps, type LLReactionPickerStyles, type LLSocialEmbedBodyStyles, LLSocialEmbedWidget, LLSocialEmbedWidgetBody, type LLSocialEmbedWidgetBodyProps, type LLSocialEmbedWidgetProps, LLStickerPicker, type LLStickerPickerProps, type LLStickerPickerStyles, LLText, LLTextAskWidget, LLTextAskWidgetActionInfo, type LLTextAskWidgetActionInfoProps, type LLTextAskWidgetActionInfoStyles, LLTextAskWidgetBody, type LLTextAskWidgetBodyProps, type LLTextAskWidgetBodyStyles, LLTextAskWidgetInput, type LLTextAskWidgetInputProps, type LLTextAskWidgetInputStyles, type LLTextAskWidgetProps, LLTextAskWidgetSubmitButton, type LLTextAskWidgetSubmitButtonProps, type LLTheme, type LLThemeAssets, LLThemeSwitch, type LLThemeSwitchProps, type LLThemeSwitchStyles, LLThemeType, type LLThemes, LLUserReactionCountDetail, type LLUserReactionCountDetailProps, type LLUserReactionCountDetailStyles, LLUserReactionCounts, type LLUserReactionCountsProps, type LLUserReactionCountsStyles, LLVoteWidgetBody, type LLVoteWidgetBodyProps, type LLVoteWidgetBodyStyles, LLWidget, LLWidgetActionInfo, type LLWidgetActionInfoProps, type LLWidgetActionInfoStyles, LLWidgetChoiceOption, type LLWidgetChoiceOptionProps, LLWidgetFooter, type LLWidgetFooterProps, type LLWidgetFooterStyles, LLWidgetHeader, LLWidgetHeaderDismissIcon, type LLWidgetHeaderDismissIconProps, type LLWidgetHeaderDismissIconStyles, type LLWidgetHeaderProps, type LLWidgetHeaderStyles, LLWidgetInteractiveTimer, type LLWidgetInteractiveTimerProps, type LLWidgetInteractiveTimerStyles, LLWidgetOption, type LLWidgetOptionProps, LLWidgetOptionResultBar, type LLWidgetOptionResultBarProps, type LLWidgetOptionResultBarStyles, type LLWidgetOptionStyles, type LLWidgetProps, LLWidgetReward, type LLWidgetRewardProps, type LLWidgetRewardStyles, LLWidgetRewards, type LLWidgetRewardsProps, type LLWidgetRewardsStyles, LLWidgetSeparator, type LLWidgetSeparatorProps, type LLWidgetSeparatorStyles, LLWidgetSponsor, type LLWidgetSponsorProps, type LLWidgetSponsorStyles, LLWidgetSubmitButtonComponent, type LLWidgetSubmitButtonComponentProps, type LLWidgetSubmitButtonProps, type LLWidgetSubmitButtonStyles, LLWidgetVoteOption, type LLWidgetVoteOptionProps, LLWidgets, LLWidgetsLoadMoreButton, type LLWidgetsLoadMoreButtonProps, type LLWidgetsLoadMoreButtonStyles, type LLWidgetsProps, type LLWidgetsStyles, type NumberPredictionWidgetOptionDetails, type PopoverDetail, PopoverType, type SliderUIComponentProps, type TrackNumberPredictionWidgetInteractedArgs, type UseAutoHideBannerEffectArg, type UseChatMessageArg, type UseChatMessageMenuItemActionsArg, type UseChatRoomActionsArg, type UseChatRoomArg, type UseCheerMeterOnOptionPressArg, type UseCustomFontStyleArgs, type UseEmojiSliderArg, type UseFontFamilyArgs, type UseIsEndWidgetUIPhaseArg, type UseIsTimelineWidgetArg, type UseIsWidgetDisabledArg, type UseIsWidgetOptionDisabledArg, type UseLoadReactionPackArg, type UseLoadTimelineWidgetEffectArg, type UseLoadUserReactionsArg, type UseLoadWidgetEffectArg, type UseLoadWidgetRewardsEffectArg, type UseMessageItemPopoverArg, type UseNumberPredictionWidgetOptionArg, type UsePredictionClaimRewardEffectArg, type UsePredictionWidgetEffectArg, type UseReactionPackArg, type UseReactionSpaceArg, type UseSelectedWidgetOption, type UseStylesArg, type UseTextAskInputTextArg, type UseThemeArg, type UseTimelineWidgetsArg, type UseUserNumberOptionsArg, type UseUserReactionActionsArg, type UseUserReactionsArg, type UseUserSliderMagnitudeArg, type UseWidgetActionsArg, type UseWidgetArg, type UseWidgetChoicesArg, type UseWidgetDismissArg, type UseWidgetExpiryEffectArg, type UseWidgetInteractedAnalyticsArgs, type UseWidgetInteractionActionsArg, type UseWidgetInteractionsArg, type UseWidgetInteractiveTimeoutArg, type UseWidgetInteractiveTimeoutResult, type UseWidgetKindArg, type UseWidgetOptionsArg, type UseWidgetResultStateArg, type UseWidgetRewardsArg, type UseWidgetRewardsEffectArg, type UseWidgetSelectedOptionIndexArg, type UseWidgetSponsorsArg, type UseWidgetSubmitActionArg, type UseWidgetUIPhaseArg, type UserReactionState, type UserReactionsForTargetIdState, type WidgetCreateInteractionActionArg, WidgetMode, WidgetResultState, WidgetUIPhase, type WidgetUpdateInteractionActionArg, type createStylesArg, useAnalytics, useApi, useAutoHideBannerEffect, useAutoScroll, useBanner, useBannerActions, useChatMessageActions, useChatMessageMenuItemActions, useChatMessages, useChatMessagesEffect, useChatRoom, useChatRoomActions, useChatRoomState, useCheerMeterOnOptionPress, useCustomFontStyle, useDebounce, type useDebounceArgs, useEmojiSlider, useFontFamily, useFonts, useGifPicker, useInit, useInteractedWidgetOption, useIsEndWidgetUIPhase, useIsTimelineWidget, useIsWidgetDisabled, useIsWidgetOptionDisabled, useLoadReactionPacksEffect, useLoadStickerPacksEffect, useLoadTimelineWidgetEffect, useLoadUserReactions, useLoadWidgetEffect, useLoadWidgetRewardsEffect, useMessageItemPopover, useNumberPredictionWidgetOption, usePredictionClaimRewardEffect, usePredictionWidgetEffect, useReactionPacks, useReactionSpace, useSelectedFieldStore, useStickerPacks, useStickerPicker, useStyles, useTextAskInputText, useTheme, useTimelineWidgetActions, type useTimelineWidgetActionsArg, useTimelineWidgets, useTrackKeyboardEffect, useUserNumberOptions, useUserReactionActions, useUserReactions, useUserReactionsEffect, useUserSliderMagnitude, useWidget, useWidgetActions, useWidgetChoices, useWidgetDismiss, useWidgetExpiryEffect, useWidgetInteractedAnalytics, useWidgetInteractionActions, useWidgetInteractions, useWidgetInteractiveTimeout, useWidgetKind, useWidgetOptions, useWidgetResultState, useWidgetRewards, useWidgetRewardsEffect, useWidgetSelectedOptionIndex, useWidgetSponsors, useWidgetSubmitAction, useWidgetUIPhase };
