import { HubEntityType } from "./types/HubEntityType";
/**
 * History is a way to track a set of sites/projects/initiatives/pages that a user has visited
 * Any content can be added to the history, but there will be different limits for different types
 * Please see the addHistoryEntry function for more details
 */
export interface IHubHistory {
    entries: IHubHistoryEntry[];
}
/**
 * History entry
 */
export interface IHubHistoryEntry {
    /**
     * Entity Type
     */
    type: HubEntityType;
    /**
     * What action was last taken on the entity
     * In the future this can expand to "replied to", "shared with" etc
     */
    action: "view" | "workspace";
    /**
     * Url the user visited
     */
    url: string;
    /**
     * Unique identifier for the entity
     */
    id: string;
    /**
     * Title of the entity
     */
    title: string;
    /**
     * Owner of the entity
     */
    owner?: string;
    /**
     * timestamp the entity was last visited
     */
    visited?: number;
    /**
     * Additional parameters that can be used to rehydrate the entity
     */
    params?: any;
}
/**
 * Add an entry to the history. This handles the limits per type,
 * and ensures that the most recent entry is at the top of the list.
 * This function does not persist the history, it only updates the object.
 * @param entry
 * @param history
 * @returns
 */
export declare function addHistoryEntry(entry: IHubHistoryEntry, history: IHubHistory): IHubHistory;
/**
 * Remove a specific entry from the user's history
 * @param entry
 * @returns
 */
export declare function removeHistoryEntry(entry: IHubHistoryEntry, history: IHubHistory): IHubHistory;
