/**
 * Codec service for current chat session persistence.
 *
 * The schema file owns the JSON contract. This class owns the read/write
 * behavior around that contract: graceful read degradation, strict write
 * validation, catalog projection, and compatibility cleanup for legacy visible
 * welcome messages.
 */
import type { ChatSession } from '../../../../../core/chat/types.js';
import type { ChatSessionCatalog, ChatSessionCatalogEntry } from './types.js';
export declare class ChatSessionCodec {
    static parseCatalog(value: unknown): ChatSessionCatalog | undefined;
    static parseSessionBody(value: unknown, args: {
        entry: ChatSessionCatalogEntry;
    }): ChatSession[];
    static projectCatalogEntry(session: ChatSession): ChatSessionCatalogEntry;
    static serializeCatalog(catalog: ChatSessionCatalog): string;
    static serializeSessionBody(session: ChatSession): string;
    private static parseCatalogEntry;
    private static normalizeCatalogEntry;
    private static resolveMessages;
}
//# sourceMappingURL=chat-session-codec.d.ts.map