import SendbirdChat from '@sendbird/chat';
import { AppInfoStateType, ProcessedMessageTemplate } from '../Sendbird/types';
import { SendbirdMessageTemplate } from '../../ui/TemplateMessageItemBody/types';
import { LoggerInterface } from '../Logger';
import useSendbird from '../Sendbird/context/hooks/useSendbird';
/**
 * Takes JSON parsed template and then returns processed message template for storing it in global state.
 */
export declare const getProcessedTemplate: (parsedTemplate: SendbirdMessageTemplate) => ProcessedMessageTemplate;
export declare const getProcessedTemplatesMap: (parsedTemplates: SendbirdMessageTemplate[]) => Record<string, ProcessedMessageTemplate>;
interface UseMessageTemplateUtilsProps {
    sdk: SendbirdChat;
    logger: LoggerInterface;
    appInfoStore: AppInfoStateType;
    actions: ReturnType<typeof useSendbird>['actions'];
}
export interface UseMessageTemplateUtilsWrapper {
    getCachedTemplate: (key: string) => ProcessedMessageTemplate | null;
    updateMessageTemplatesInfo: (templateKeys: string[], messageId: number, requestedAt: number) => Promise<void>;
    initializeMessageTemplatesInfo: (readySdk: SendbirdChat) => Promise<void>;
}
export default function useMessageTemplateUtils({ sdk, logger, appInfoStore, actions, }: UseMessageTemplateUtilsProps): UseMessageTemplateUtilsWrapper;
export {};
