export type RecordActivityType = "entity" | "source" | "observation" | "interpretation" | "timeline_event" | "relationship";
export declare const RECORD_ACTIVITY_TYPES: RecordActivityType[];
export interface RecordActivityItem {
    record_type: RecordActivityType;
    id: string;
    activity_at: string;
    title: string;
    subtitle: string | null;
    /**
     * Enriched, human-readable fields for UI rendering. All optional for
     * backwards compatibility with older clients that only consume
     * `title`/`subtitle`. Clients should fall back to `title`/`subtitle`
     * when these are absent.
     */
    entity_id?: string | null;
    entity_name?: string | null;
    entity_type?: string | null;
    source_id?: string | null;
    source_filename?: string | null;
    source_type?: string | null;
    source_entity_id?: string | null;
    source_entity_name?: string | null;
    target_entity_id?: string | null;
    target_entity_name?: string | null;
    relationship_type?: string | null;
    event_type?: string | null;
    status?: string | null;
    turn_key?: string | null;
    /**
     * Server-computed clustering hint: items sharing the same `group_key`
     * are typically produced by the same agent turn or refer to the same
     * primary entity, and can be visually bundled by the client.
     */
    group_key?: string | null;
    /**
     * Derived agent trust tier for this record. Pulled from the same
     * `AttributionProvenance` block the Inspector consumes elsewhere (see
     * `src/crypto/agent_identity.ts`). Null for record types that don't yet
     * carry attribution (e.g. entity rows are derived, not directly
     * written by an agent) or for rows that predate AAuth.
     */
    attribution_tier?: "hardware" | "software" | "unverified_client" | "anonymous" | null;
    /**
     * Best-effort human-readable agent label for activity feeds. Picked in
     * priority order: `client_name` (+ version) → `agent_sub` → short
     * thumbprint. Null when no attribution is available.
     */
    agent_label?: string | null;
}
/** Parse `record_types` query (comma-separated enum values). */
export declare function parseRecordActivityTypesQuery(raw: unknown): RecordActivityType[] | undefined;
export interface ListRecentRecordActivityOptions {
    limit: number;
    offset: number;
    /**
     * When set, only these `record_type` values are returned (SQL filter).
     * Omit or leave empty for all types.
     */
    recordTypes?: RecordActivityType[];
    /**
     * Optional agent key (see `deriveAgentKeyFromProvenance`) used to scope
     * the feed to a single writer. Rows whose derived key does not match
     * are filtered out in JS after the SQL fetch — kept simple because the
     * Inspector is not a high-volume surface.
     */
    agentKey?: string;
}
export declare function listRecentRecordActivity(userId: string, limitOrOptions: number | ListRecentRecordActivityOptions, offset?: number): {
    items: RecordActivityItem[];
    has_more: boolean;
    limit: number;
    offset: number;
};
//# sourceMappingURL=recent_record_activity.d.ts.map