/**
 * Session Key Generator — OpenClaw `agent:{agentId}:{rest}` format.
 */
import type { MessageSource } from './types.js';
export interface SessionKeyContext {
    source: MessageSource;
    channelId?: string;
    chatId: string;
    senderId: string;
    isGroup: boolean;
    threadId?: string;
    agentId?: string;
    accountId?: string;
    mainKey?: string;
    dmScope?: 'main' | 'per-peer' | 'per-channel-peer' | 'per-account-channel-peer';
    identityLinks?: Record<string, string[]>;
}
export declare function generateSessionKey(ctx: SessionKeyContext): string;
export declare function parseSessionKey(sessionKey: string): {
    source: MessageSource;
    type: 'dm' | 'group' | 'thread' | 'direct' | 'other';
    chatId: string;
    threadId?: string;
    agentId?: string;
    accountId?: string;
};
export declare function isValidSessionKey(sessionKey: string): boolean;
export declare function getSessionDisplayName(sessionKey: string): string;
export declare function getRoutingInfo(sessionKey: string): {
    channel: string;
    chatId: string;
    threadId?: string;
};
