/// <reference types="react" />
import { LastItemFragment } from '../api/Fragments/LastItem.generated';
import { LocalizedString, StatusPageEventHistoryItemComponentStatus } from '../api/types';
export * from './S3Upload';
export * from './IntersectionObserver';
export declare const defaultLogo = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5Ljk5OTUgMEMxNC42OTU5IDAuMDAyMDIzODggOS42MTAxMyAyLjEwOTc1IDUuODU5OTQgNS44NTk5NEMyLjEwOTc1IDkuNjEwMTMgMC4wMDIwMjM4OCAxNC42OTU5IDAgMTkuOTk5NUMwLjAwMTczNDc2IDI1LjMwMzIgMi4xMDkzNCAzMC4zODkzIDUuODU5NTYgMzQuMTM5N0M5LjYwOTc3IDM3Ljg5MDEgMTQuNjk1NyAzOS45OTggMTkuOTk5NSA0MEMyNS4zMDM0IDM5Ljk5ODMgMzAuMzg5NiAzNy44OTA1IDM0LjE0MDEgMzQuMTQwMUMzNy44OTA1IDMwLjM4OTYgMzkuOTk4MyAyNS4zMDM0IDQwIDE5Ljk5OTVDMzkuOTk4IDE0LjY5NTcgMzcuODkwMSA5LjYwOTc3IDM0LjEzOTcgNS44NTk1NkMzMC4zODkzIDIuMTA5MzQgMjUuMzAzMiAwLjAwMTczNDc2IDE5Ljk5OTUgMFpNMTkuOTk5NSA1Ljk5OTk1QzIwLjc4NzcgNS45OTg5NCAyMS41NjgzIDYuMTUzNDUgMjIuMjk2NyA2LjQ1NDYyQzIzLjAyNTEgNi43NTU3OSAyMy42ODcgNy4xOTc3IDI0LjI0NDMgNy43NTUwNUMyNC44MDE2IDguMzEyMzkgMjUuMjQzNiA4Ljk3NDIyIDI1LjU0NDcgOS43MDI2MkMyNS44NDU5IDEwLjQzMSAyNi4wMDA0IDExLjIxMTcgMjUuOTk5NCAxMS45OTk5QzI2LjAwMDQgMTIuNzg4MSAyNS44NDU5IDEzLjU2ODggMjUuNTQ0NyAxNC4yOTcyQzI1LjI0MzYgMTUuMDI1NiAyNC44MDE2IDE1LjY4NzQgMjQuMjQ0MyAxNi4yNDQ3QzIzLjY4NyAxNi44MDIxIDIzLjAyNTEgMTcuMjQ0IDIyLjI5NjcgMTcuNTQ1MkMyMS41NjgzIDE3Ljg0NjMgMjAuNzg3NyAxOC4wMDA4IDE5Ljk5OTUgMTcuOTk5OEMxOS4yMTEyIDE4LjAwMDggMTguNDMwNiAxNy44NDYzIDE3LjcwMjIgMTcuNTQ1MkMxNi45NzM4IDE3LjI0NCAxNi4zMTIgMTYuODAyMSAxNS43NTQ2IDE2LjI0NDdDMTUuMTk3MyAxNS42ODc0IDE0Ljc1NTQgMTUuMDI1NiAxNC40NTQyIDE0LjI5NzJDMTQuMTUzIDEzLjU2ODggMTMuOTk4NSAxMi43ODgxIDEzLjk5OTUgMTEuOTk5OUMxMy45OTg1IDExLjIxMTcgMTQuMTUzIDEwLjQzMSAxNC40NTQyIDkuNzAyNjJDMTQuNzU1NCA4Ljk3NDIyIDE1LjE5NzMgOC4zMTIzOSAxNS43NTQ2IDcuNzU1MDVDMTYuMzEyIDcuMTk3NyAxNi45NzM4IDYuNzU1NzkgMTcuNzAyMiA2LjQ1NDYyQzE4LjQzMDYgNi4xNTM0NSAxOS4yMTEyIDUuOTk4OTQgMTkuOTk5NSA1Ljk5OTk1Wk0xOS45OTk1IDM0LjM5OTNDMTcuNjIzNSAzNC4zOTk3IDE1LjI4NDQgMzMuODEyMiAxMy4xOTA2IDMyLjY4OTJDMTEuMDk2OSAzMS41NjYyIDkuMzEzNTIgMjkuOTQyNSA3Ljk5OTU2IDI3Ljk2M0M4LjA1OTU2IDIzLjk4MzQgMTUuOTk5MSAyMS44MDI3IDE5Ljk5OTUgMjEuODAyN0MyMy45NzkxIDIxLjgwMjcgMzEuOTM5MyAyMy45ODQ1IDMxLjk5OTMgMjcuOTYzQzMwLjY4NTQgMjkuOTQyNSAyOC45MDIgMzEuNTY2MiAyNi44MDgzIDMyLjY4OTJDMjQuNzE0NSAzMy44MTIyIDIyLjM3NTQgMzQuMzk5NyAxOS45OTk1IDM0LjM5OTNaIiBmaWxsPSIjNTUyNkZGIi8+Cjwvc3ZnPgo=";
export declare function usePrevious<value>(value: value): value;
export declare function useLogo(sender: {
    logoURL?: string;
} | {
    image?: string;
}): string;
declare type Item = {
    sender: Partial<{
        __typename: 'MemberUser';
        _id: string;
        name: string;
        title: string;
        logoURL: string;
    } | {
        __typename: 'Visitor';
        _id: string;
        name: string;
        image?: string;
    } | {
        __typename: 'APIIntegration';
        _id: string;
        displayName?: string;
        displayDescription?: string;
        logoURL: string;
    }>;
};
export declare function useSenderInfo(item: Item): {
    bot: boolean;
    _id: string;
    name: string;
    title: string;
    logoURL: string;
} | {
    bot: boolean;
    _id: string;
    name: string;
    logoURL: string;
    title?: undefined;
};
export declare function MessagePreview({ message }: {
    message: LastItemFragment;
}): JSX.Element;
export declare function getHighestStatus(statuses: StatusPageEventHistoryItemComponentStatus[]): StatusPageEventHistoryItemComponentStatus.Degraded | StatusPageEventHistoryItemComponentStatus.MajorOutage | StatusPageEventHistoryItemComponentStatus.Operational | StatusPageEventHistoryItemComponentStatus.PartialOutage;
export declare function isDark(color: string): boolean;
export declare function shortenString(str: string, length?: number): string;
export declare function formatBytes(bytes: number, decimals?: number): string;
/**
 * Returns the proper localization of the string
 * @param text - Localized string array
 * @returns Text for your current locale.
 */
export declare function localizeString(text: LocalizedString[]): string;
/**
 * Returns the proper localization of the string
 * @param text - Localized string array
 * @returns Text for your current locale.
 */
export declare function localizeContent<T>(text: {
    language: string;
    value: T;
}[]): T;
