import React from "react";
export interface MendableSearchStyle {
    darkMode: boolean;
    accentColor: string;
    backgroundColor?: string;
}
export interface MendableInPlaceProps {
    anon_key: string;
    style?: MendableSearchStyle;
    hintText?: string;
    showSimpleSearch?: boolean;
    welcomeMessage?: string;
    botIcon?: JSX.Element | React.ReactNode | string | undefined;
    userIcon?: JSX.Element | React.ReactNode | undefined;
    messageSettings?: MessageSettings;
    footer?: MendableFooterProps;
    inputSettings?: InputSettings;
    testing_id?: string;
    askAIText?: string;
    context?: string;
    privacyDisclaimer?: string;
    _shouldStream?: boolean;
    _initialConversation?: any[];
    language?: string;
    metadata?: Json;
    hintQuestions?: string[];
    toolbarSettings?: ToolbarSettings;
    onMessageForTracking?: (question: string, answer: string, sources?: string[], confidence_score?: number) => void;
    onSourceClickedForTracking?: (source: string) => void;
    onSwitchingSearchType?: (searchType: string) => void;
    onRateClicked?: (isLiked: boolean, question: string, answer: string, sources: string[]) => void;
    __experimentalBuilderApiKey?: string;
    _isFullyLoaded?: (b: boolean) => void;
}
export interface MendableSearchProps {
    anon_key: string;
    customSearchBar?: JSX.Element | undefined;
    floatingButtonEnabled?: boolean;
    style?: MendableSearchStyle;
    welcomeMessage?: string;
    hintText: string;
    openState?: boolean;
    setOpenState?: (openState: boolean) => void;
    showSimpleSearch?: boolean;
    botIcon?: JSX.Element | React.ReactNode | string | undefined;
    userIcon?: JSX.Element | React.ReactNode | undefined;
    dialogCustomStyle?: DialogCustomStyle;
    messageSettings?: MessageSettings;
    footer?: MendableFooterProps;
    cmdShortcutKey?: string;
    hintQuestions?: string[];
    inputSettings?: InputSettings;
    _shouldStream?: boolean;
    testing_id?: string;
    isPinnable?: boolean;
    _setIsPinned?: () => void;
    _isPinned?: boolean;
    askAIText?: string;
    context?: string;
    privacyDisclaimer?: string;
    toolbarSettings?: ToolbarSettings;
    metadata?: Json;
    __experimentalBuilderApiKey?: string;
    _isFullyLoaded?: (b: boolean) => void;
    onMessageForTracking?: (question: string, answer: string, sources?: string[], confidence_score?: number) => void;
    onSourceClickedForTracking?: (source: string) => void;
    onSwitchingSearchType?: (searchType: string) => void;
    onRateClicked?: (isLiked: boolean, question: string, answer: string, sources: string[]) => void;
}
export interface MendableSidebarProps {
    anon_key: string;
    customSearchBar?: JSX.Element | undefined;
    floatingButtonEnabled?: boolean;
    style?: MendableSearchStyle;
    welcomeMessage?: string;
    hintText: string;
    openState?: boolean;
    historyState: any;
    setHistory: (historyState: any) => void;
    setOpenState: (openState: boolean) => void;
    showSimpleSearch?: boolean;
    botIcon?: JSX.Element | React.ReactNode | string | undefined;
    userIcon?: JSX.Element | React.ReactNode | undefined;
    dialogCustomStyle?: DialogCustomStyle;
    footer?: MendableFooterProps;
    hintQuestions?: string[];
    toolbarSettings?: ToolbarSettings;
    inputSettings?: InputSettings;
    messageSettings?: MessageSettings;
    _shouldStream?: boolean;
    testing_id?: string;
    _setIsPinned?: () => void;
    _isPinned: boolean;
    askAIText?: string;
    context?: string;
    privacyDisclaimer?: string;
    metadata?: Json;
    __experimentalBuilderApiKey?: string;
    onMessageForTracking?: (question: string, answer: string, sources?: string[], confidence_score?: number) => void;
    onSourceClickedForTracking?: (source: string) => void;
    onSwitchingSearchType?: (searchType: string) => void;
    onRateClicked?: (isLiked: boolean, question: string, answer: string, sources: string[]) => void;
}
export interface DialogCustomStyle {
    dialogTopMargin?: string;
}
export interface MendableFooterProps {
    bottomRightLink?: {
        label: string;
        link: string;
    };
}
export type Json = string | number | boolean | null | {
    [key: string]: Json | undefined;
} | Json[];
export interface SearchBarProps {
    anon_key: string;
    language?: string;
    placeholder?: string;
    welcomeMessage?: string;
    onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
    style?: MendableSearchStyle;
    searchBarStyle?: SearchBarStyle;
    botIcon?: JSX.Element | React.ReactNode | string | undefined;
    userIcon?: JSX.Element | React.ReactNode | undefined;
    cmdShortcutKey?: string;
    dialogPlaceholder?: string;
    showSimpleSearch?: boolean;
    dialogCustomStyle?: DialogCustomStyle;
    messageSettings?: MessageSettings;
    footer?: MendableFooterProps;
    _js?: boolean;
    _shouldStream?: boolean;
    testing_id?: string;
    askAIText?: string;
    context?: string;
    hintQuestions?: string[];
    toolbarSettings?: ToolbarSettings;
    inputSettings?: InputSettings;
    isPinnable?: boolean;
    privacyDisclaimer?: string;
    metadata?: Json;
    onMessageForTracking?: (question: string, answer: string, sources?: string[], confidence_score?: number) => void;
    onSourceClickedForTracking?: (source: string) => void;
    onSwitchingSearchType?: (searchType: string) => void;
    onRateClicked?: (isLiked: boolean, question: string, answer: string, sources: string[]) => void;
    __experimentalBuilderApiKey?: string;
}
export interface SearchBarStyle {
    color?: string;
    backgroundColor?: string;
    borderColor?: string;
    shadow?: boolean;
    borderRadius?: string;
    showShortcut?: boolean;
    searchIcon?: JSX.Element | React.ReactNode | string | undefined;
}
export interface FloatingButtonProps {
    anon_key: string;
    style?: MendableSearchStyle;
    icon?: JSX.Element | React.ReactNode | string | undefined;
    floatingButtonStyle?: FloatingButtonStyle;
    cmdShortcutKey?: string;
    showSimpleSearch?: boolean;
    welcomeMessage?: string;
    dialogPlaceholder?: string;
    botIcon?: JSX.Element | React.ReactNode | string | undefined;
    userIcon?: JSX.Element | React.ReactNode | undefined;
    positionOverwriteClassname?: string;
    dialogCustomStyle?: DialogCustomStyle;
    footer?: MendableFooterProps;
    showPopup?: boolean;
    popupText?: string;
    dismissPopupAfter?: number;
    hintQuestions?: string[];
    toolbarSettings?: ToolbarSettings;
    metadata?: Json;
    customText?: string;
    messageSettings?: MessageSettings;
    inputSettings?: InputSettings;
    language?: string;
    _js?: boolean;
    _shouldStream?: boolean;
    testing_id?: string;
    askAIText?: string;
    context?: string;
    privacyDisclaimer?: string;
    onMessageForTracking?: (question: string, answer: string, sources?: string[], confidence_score?: number) => void;
    onSourceClickedForTracking?: (source: string) => void;
    onSwitchingSearchType?: (searchType: string) => void;
    onRateClicked?: (isLiked: boolean, question: string, answer: string, sources: string[]) => void;
    __experimentalBuilderApiKey?: string;
}
export interface MendableChatBubbleProps {
    anon_key: string;
    style?: MendableSearchStyle;
    icon?: JSX.Element | React.ReactNode | string | undefined;
    floatingButtonStyle?: FloatingButtonStyle;
    cmdShortcutKey?: string;
    showSimpleSearch?: boolean;
    welcomeMessage?: string;
    dialogPlaceholder?: string;
    botIcon?: JSX.Element | React.ReactNode | string | undefined;
    userIcon?: JSX.Element | React.ReactNode | undefined;
    positionOverwriteClassname?: string;
    dialogCustomStyle?: DialogCustomStyle;
    customText?: string;
    messageSettings?: MessageSettings;
    footer?: MendableFooterProps;
    toolbarSettings?: ToolbarSettings;
    hintQuestions?: string[];
    inputSettings?: InputSettings;
    language?: string;
    _js?: boolean;
    _shouldStream?: boolean;
    testing_id?: string;
    askAIText?: string;
    context?: string;
    metadata?: Json;
    __experimentalBuilderApiKey?: string;
}
export interface MessageSettings {
    openSourcesInNewTab?: boolean;
    openInNewTabForOutsideSources?: boolean;
    prettySources?: boolean;
    persistMessagesBetweenSessions?: boolean;
    scrollToView?: boolean;
    hideSources?: boolean;
    legacySourceDisplay?: boolean;
    textAlign?: string;
    sourcesFirst?: boolean;
    sourcesDisplay?: "short" | "long";
}
export interface ToolbarSettings {
    showStopGeneratingButton?: boolean;
}
export interface InputSettings {
    askButtonStyle?: AskButtonStyle;
}
export interface AskButtonStyle {
    activeColor: string;
    disabledColor: string;
    textColor: string;
    disabledTextColor: string;
}
export declare const DefaultAskButtonStyle: AskButtonStyle;
export interface CustomSearchBarProps {
    toggledOn: boolean;
    onClick: () => void;
}
export interface FloatingButtonStyle {
    color: string;
    backgroundColor: string;
}
export declare const DefaultStyle: MendableSearchStyle;
export declare const DefaultSearchBarStyle: SearchBarStyle;
export declare const DefaultSearchBarLightModeStyle: SearchBarStyle;
export declare const DefaultSearchBarStyle2: SearchBarStyle;
export declare const DefaultFloatingButtonStyle: FloatingButtonStyle;
export declare const DefaultLightStyle: MendableSearchStyle;
export declare const DefaultLightFloatingButtonStyle: FloatingButtonStyle;
export declare const DefaultMessageSettings: MessageSettings;
export declare const DefaultToolbarSettings: ToolbarSettings;
export interface Company {
    company_id: number;
    display_name: string;
    name: string;
    is_white_label: boolean;
}
export interface Project {
    id: number;
    created_at: string;
    name: string;
    company_id: number;
    support_url: string;
}
export interface Conversation {
    conversation_id: number;
    start_time: string;
    end_time: string | null;
    message_count: number;
    project_id: number;
}
export declare enum Alert {
    NoDocs = "noDocs",
    FullDocs = "fullDocs",
    None = "none",
    Error = "error"
}
export type PinToggleButtonProps = {
    isPinned: boolean;
    setPinState: () => void;
    style?: MendableSearchStyle;
};
export interface MendableTool {
    name: string;
    is_action: boolean;
}
