import type { CommsMsg } from './mailbox.js';
export type { CommsMsg } from './mailbox.js';
export declare const GLYPH: {
    readonly live: "●";
    readonly idle: "○";
    readonly ask: "▲";
    readonly delivered: "✓";
    readonly pending: "⏳";
    readonly route: "→";
    readonly stream: "─→";
    readonly thread: "⇄";
};
export type Accent = 'cyan' | 'amber';
/** Render the shared one-line comms header, with `right` aligned to the terminal edge. */
export declare function masthead(o: {
    title: string;
    host: string;
    accent: Accent;
    right?: string;
    stats?: string[];
}): string;
/** Normalize non-negative counts across the eight Unicode sparkline levels. */
export declare function sparkline(counts: number[]): string;
/** Flatten mailbox histories into one newest-first communication stream. */
export declare function aggregate(boxes: {
    id: string;
    label: string;
    messages: import('./mailbox.js').StoredMessage[];
}[]): CommsMsg[];
/** Count messages in rolling one-hour buckets, ordered oldest to newest. */
export declare function hourlyCounts(msgs: CommsMsg[], hours: number, now?: Date): number[];
/** Aggregate the human-readable sender-to-recipient routes, busiest first. */
export declare function graphEdges(msgs: CommsMsg[]): {
    from: string;
    to: string;
    count: number;
}[];
