import { type ConversationTurnHookSummary } from "./conversation_turn.js";
export interface RecentConversationRelatedEntity {
    entity_id: string;
    entity_type: string | null;
    canonical_name: string | null;
    title: string | null;
    relationship_type: string;
}
export interface RecentConversationMessage {
    message_id: string;
    canonical_name: string | null;
    role: string | null;
    /** When present on the snapshot (v0.6+), complements legacy `role`. */
    sender_kind: string | null;
    content: string | null;
    turn_key: string | null;
    activity_at: string;
    related_entities: RecentConversationRelatedEntity[];
    hook_summary?: ConversationTurnHookSummary | null;
}
export interface RecentConversationItem {
    conversation_id: string;
    canonical_name: string | null;
    title: string | null;
    activity_at: string;
    message_count: number;
    /** Parsed `observations.provenance` from the latest observation on this conversation entity (agent identity). */
    latest_write_provenance: Record<string, unknown> | null;
    messages: RecentConversationMessage[];
}
export interface RecentConversationsFilters {
    /** Inclusive lower bound on conversation activity (ISO 8601 string, lexicographic compare). */
    activity_after?: string | null;
    /** Inclusive upper bound on conversation activity (ISO 8601 string). */
    activity_before?: string | null;
    /**
     * Match conversations whose latest observation (by `observed_at`) derives to
     * this key via `deriveAgentKeyFromProvenance` — same strings as `GET /agents`.
     */
    agent_key?: string | null;
}
export declare function listRecentConversations(userId: string, limit: number, offset: number, filters?: RecentConversationsFilters | null): {
    items: RecentConversationItem[];
    has_more: boolean;
    limit: number;
    offset: number;
};
/**
 * Full recent-conversation payload for a single `conversation` entity id.
 * Returns null when the id is missing, merged away, wrong type, or not owned by the user.
 */
export declare function getRecentConversationById(userId: string, conversationId: string): RecentConversationItem | null;
//# sourceMappingURL=recent_conversations.d.ts.map