/**
 * Cerca una porzione di stringa in una stringa, ignorando il case
 * @param partialString la stringa da cercare
 * @param entireString  la stringa in cui cercare
 * @returns true se la stringa parziale è inclusa nella stringa intera, false altrimenti
 */
export declare function includesIgnoreCase(partialString?: string, entireString?: string): boolean;
/**
 * Prende un oggetto e restituisce un array delle proprie chiavi tipizzate.
 * @param obj L'oggetto di cui si vogliono le chiavi.
 * @returns Un array di chiavi tipizzate dell'oggetto passato come parametro.
 */
export declare function getTypedObjectKeys<T extends Record<string, unknown | undefined>>(obj?: T | null): (keyof T)[];
export declare const MessageTypes: {
    readonly Unknown: "unknown";
    readonly Text: "text";
    readonly Location: "location";
    readonly Contacts: "contacts";
    readonly Interactive: "interactive";
    readonly Image: "image";
    readonly Audio: "audio";
    readonly Document: "document";
    readonly Reaction: "reaction";
    readonly Template: "template";
    readonly Video: "video";
    readonly Button: "button";
};
export type MessageTypes = (typeof MessageTypes)[keyof typeof MessageTypes];
export declare const MediaMessageTypes: ("image" | "audio" | "document" | "video")[];
export type MediaMessageTypes = (typeof MediaMessageTypes)[number];
export declare const getCategoryFromExtension: (fileName: string) => MediaMessageTypes | null;
export declare function toPrintableFullDate(date: string | null | undefined): string;
export declare function buildSentTime(sentDate: string): string;
