/// <reference types="bluebird" />
import * as Promise from 'bluebird';
import { HudAiListAttributes, Resource } from '../utils/Resource';
import { RequestManager } from '../RequestManager';
import { FeedItem } from '../entities';
export interface FeedFetchAttributes extends HudAiListAttributes {
    userId: string;
    text?: string;
    tags?: string[];
    geographies?: string[];
    types?: string[];
    keyTerms?: string[];
    itemIds?: string[] | string;
    companyIds?: string[] | string;
    sourceIds?: string[] | string;
    peopleIds?: string[] | string;
    minImportance?: number;
    minLocal?: number;
    maxImportance?: number;
    maxLocal?: number;
    publishedBefore?: Date;
    publishedAfter?: Date;
    scoredBefore?: Date;
    scoredAfter?: Date;
    weights?: {
        importance?: number;
        article?: number;
        tweet?: number;
        stockAlert?: number;
        video?: number;
        quote?: number;
        decay?: number;
        decayOffset?: string;
        decayScale?: string;
        businessWord?: number;
        industryTerm?: number;
        jobFunctionTerm?: number;
        corpusTerm?: number;
        source?: number;
        followedCompany?: number;
        followedPerson?: number;
    };
}
export interface GroupedTagCount {
    [term: string]: {
        [tag: string]: number;
    };
}
export declare class FeedResource extends Resource<FeedItem, any, any, any> {
    constructor(requestManager: RequestManager);
    fetch(fetchArgs: FeedFetchAttributes): Promise<{
        count: number;
        rows: FeedItem[];
    }>;
    refreshIndex(index: string): Promise<any>;
    createIndex(index: string): Promise<any>;
    getOrCreateIndex(index: string): Promise<any>;
    destroyIndex(index: string): Promise<any>;
    generateHeatmap(countArgs: FeedFetchAttributes): Promise<GroupedTagCount>;
}
