import { HDict, HNum, HRef, HStr } from 'haystack-core';
import { ClientServiceConfig } from '../ClientServiceConfig';
export interface TopicSetting extends HDict {
    topic: HStr;
    dis?: HStr;
    description?: HStr;
}
export interface UserViewSetting extends HDict {
    topic: HStr;
    kind: HStr;
    filter?: HStr;
}
export interface SystemPurgeSetting extends HDict {
    kind: HStr;
    purgeInterval: HNum;
}
/**
 * An implementation of the FIN Settings Notification service.
 */
export declare class NotificationSettingsService {
    #private;
    /**
     * Constructs a new notifications service object.
     *
     * @param serviceConfig Service configuration.
     */
    constructor(serviceConfig: ClientServiceConfig);
    /**
     * Get all the notification settings topics
     *
     * @returns The result of the read operation.
     */
    readTopics(): Promise<TopicSetting[]>;
    /**
     * Adds or updates a topic description.
     * Note: Setting role descriptions is an operation that requires a super user role.
     *
     * @param topicDescription The topic description object
     * @returns Returns the id of the topic description that was either created or updated.
     */
    setTopicSetting(topicSetting: TopicSetting): Promise<HRef>;
    /**
     * Get the view notifications settings for the current user.
     *
     * @returns Returns the view settings for the current users.
     */
    readUserViews(): Promise<UserViewSetting[]>;
    /**
     * Sets a notification view setting for the current user.
     * @param viewSetting The setting object
     * @returns Returns the id of the setting that was either created or updated.
     */
    setUserViewSetting(userViewSetting: UserViewSetting): Promise<HRef>;
    /**
     * Get the system wide purge notifications settings.
     *
     * @returns Returns the system purge settings.
     */
    readPurgeSettings(): Promise<SystemPurgeSetting[]>;
    /**
     * Sets a notification purge setting.
     * @param purgeSetting The setting object
     * @returns Returns the id of the setting that was either created or updated.
     */
    setPurgeSettings(systemPurgeSetting: SystemPurgeSetting): Promise<HRef>;
}
