import { type ClassValue } from "clsx";
/**
 * Utility functions for common operations
 */
/**
 * Merge class names with Tailwind CSS
 * @param inputs - Class names to merge
 * @returns Merged class names
 */
export declare function cn(...inputs: ClassValue[]): string;
/**
 * Delay execution for a specified time
 * @param ms - Milliseconds to delay
 * @returns Promise that resolves after the delay
 */
export declare function delay(ms: number): Promise<void>;
/**
 * Generate a random string of specified length
 * @param length - Length of the string
 * @returns Random string
 */
export declare function generateRandomString(length?: number): string;
/**
 * Truncate a string to a specified length
 * @param str - String to truncate
 * @param maxLength - Maximum length
 * @param suffix - Suffix to add to truncated string
 * @returns Truncated string
 */
export declare function truncateString(str: string, maxLength: number, suffix?: string): string;
/**
 * Serialize a JSON-LD schema for a `<script type="application/ld+json">`
 * block — THE one home of the escape rule (the hub re-exports this from
 * lib/utils/breadcrumbs). JSON.stringify does NOT HTML-escape: a stored
 * "</script>" inside any admin/user-entered field would terminate the tag
 * early (stored XSS). Every "<" becomes the JSON escape sequence
 * backslash-u003c — still valid JSON, inert in HTML.
 */
export declare function serializeJsonLd(schema: unknown): string;
/**
 * Deep clone an object
 * @param obj - Object to clone
 * @returns Cloned object
 */
export declare function deepClone<T>(obj: T): T;
/**
 * Get the Slack community join URL from environment variables
 * @returns Slack community join URL or fallback URL
 */
export declare function getSlackCommunityJoinUrl(): string;
//# sourceMappingURL=common.d.ts.map