/**
 * Convert HotMesh's compact timestamp (YYYYMMDDHHmmss.SSS) to ISO 8601.
 */
export declare function hmshTimestampToISO(ts: string): string;
/**
 * Compute duration in milliseconds between two HotMesh compact timestamps.
 */
export declare function computeDuration(ac?: string, au?: string): number | null;
/**
 * Deserialize a HotMesh serialized value.
 * Prefix conventions: /s = JSON, /d = number, /t = true, /f = false, /n = null.
 */
export declare function fromString(value: string): unknown;
/**
 * Validate and sanitize an app_id for use as a Postgres schema name.
 */
export declare function sanitizeAppId(appId: string): string;
/**
 * Quote a schema name for safe use in SQL queries (Postgres identifier quoting).
 */
export declare function quoteSchema(schema: string): string;
/** Schema-qualified symbol lookup — schema is injected as an identifier, not a parameter. */
export declare const LOAD_SYMBOL_MAP: (schema: string) => string;
/**
 * Load all symbol key mappings from {schema}.symbols for the given appId.
 * Returns a reverse map: abbreviated 3-char key → human-readable path.
 */
export declare function loadSymbolMap(schema: string, appId: string): Promise<Record<string, string>>;
/**
 * Inflate raw HotMesh job attributes using the symbol map.
 * Converts abbreviated 3-char keys + dimensional indices into
 * human-readable "dimensions/path" entries with deserialized values.
 *
 * Key patterns:
 *   "abc"          → 3-char job-level key (metadata/jc, data/summary, etc.)
 *   "abc,N,M,..."  → activity/transition key with dimensional index
 *   ":"            → status semaphore
 */
export declare function inflateAttributes(attrs: Record<string, string>, symbolMap: Record<string, string>): Record<string, unknown>;
/**
 * Rebuild a nested object from a flat "dim1/dim2/.../path" → value map.
 */
export declare function restoreHierarchy(flat: Record<string, unknown>): Record<string, unknown>;
export interface ActivityInfo {
    name: string;
    type: string;
    step: string;
    ac: string | null;
    au: string | null;
    traceId: string | null;
    spanId: string | null;
    error: string | null;
    data: Record<string, unknown> | null;
    dimensions: string;
}
/**
 * Walk an inflated HotMesh hierarchy to extract all activities/transitions.
 * Recurses through numeric dimension keys, collecting activity nodes that
 * have an `output.metadata` subtree.
 */
export declare function extractActivities(hierarchy: Record<string, unknown>): ActivityInfo[];
