import { Need, Post } from '../../API';
import { ApolloCacheService } from '../../apollo-cache-services';
import { BaseModel, IApolloService } from '../../apollo-cache-services/types';
export declare class TopicRelatedFeedbackCacheService extends ApolloCacheService {
    cacheKeys: {
        TopicRelatedFeedback: string;
    };
    serializeModel<T extends Partial<BaseModel>>(model: T): (T & Need) | (T & {
        artifact_description: string;
        artifact_adminAuthor: import("../../API").Admin;
        artifact_adminAssigned: import("../../API").Admin;
        artifact_user: import("../../API").User;
        artifact_account: import("../../API").Account;
        artifact_seen: boolean;
        artifact_objectSource: import("../../API").SourceOfData;
        __typename?: "artifact";
        account?: import("../../API").Account;
        accountID?: string;
        adminAssigned?: import("../../API").Admin;
        adminAssignedID?: string;
        adminAuthor: import("../../API").Admin;
        adminAuthorID: string;
        attachments?: import("../../API").Attachment[];
        attachmentsAggregate: import("../../API").ArtifactAttachmentsAggregateResponse[];
        changeMakerID: string;
        changeMakerType: import("../../API").ChangeMakerTypes;
        created_at: any;
        description: string;
        email?: string;
        histories?: import("../../API").History[];
        historiesAggregate: import("../../API").ArtifactHistoriesAggregateResponse[];
        id: string;
        inbox?: import("../../API").Inbox;
        inboxID?: string;
        isDeleted: boolean;
        isProcessed?: boolean;
        name: string;
        needs?: Need[];
        needsAggregate: import("../../API").ArtifactNeedsAggregateResponse[];
        needsCount: number;
        objectSource: import("../../API").SourceOfData;
        openNeedsCount: number;
        organization: import("../../API").Organization;
        organizationID: string;
        seen: boolean;
        successPlan?: import("../../API").SuccessPlan;
        successPlanID?: string;
        tasks?: import("../../API").Task[];
        tasksAggregate: import("../../API").ArtifactTasksAggregateResponse[];
        updated_at: any;
        user?: import("../../API").User;
        userID?: string;
    }) | (T & {
        post_description: string;
        post_status: import("../../API").PostStatus;
        __typename?: "Post";
        attachmentBlocks?: import("../../API").AttachmentBlock[];
        buttons: import("../../API").Button[];
        buttonsAggregate: import("../../API").PostButtonsAggregateResponse[];
        changeMakerID?: string;
        changeMakerType?: import("../../API").ChangeMakerTypes;
        comments: import("../../API").Comment[];
        commentsAggregate: import("../../API").PostCommentsAggregateResponse[];
        commentsVisibility?: import("../../API").CommentsVisibility;
        created_at: any;
        description?: string;
        displayedPublishDateOption?: import("../../API").PostPublishDateOptions;
        featuredImage?: string;
        feed: import("../../API").Feed;
        feedID: string;
        firstLabel?: string;
        firstPublishedDate?: any;
        headerBlocks?: import("../../API").HeaderBlock[];
        id: string;
        lastPublishedDate?: any;
        lastSavedAt?: any;
        linkButtonTheme?: string;
        media?: string;
        notificationCreatedAt?: any;
        notificationDescription?: string;
        notificationPosition?: string;
        notificationPreferences?: import("../../API").NotificationPreference[];
        notificationPreferencesAggregate: import("../../API").PostNotificationPreferencesAggregateResponse[];
        notificationResponseMech?: boolean;
        notificationStats: any;
        organization: import("../../API").Organization;
        organizationID: string;
        originalPost: Post;
        originalPostID?: string;
        owner?: import("../../API").Admin;
        ownerID?: string;
        pageOrder?: number;
        pages?: import("../../API").Page[];
        publishedDate?: any;
        responseCounts?: boolean;
        responseMech?: import("../../API").ResponseType;
        responses: import("../../API").Response[];
        responsesAggregate: import("../../API").PostResponsesAggregateResponse[];
        responsesCounts: any;
        secondLabel?: string;
        seenCount?: number;
        segments?: import("../../API").Segment[];
        segmentsAggregate: import("../../API").PostSegmentsAggregateResponse[];
        showFeaturedImage?: boolean;
        showResponseMechCounts?: boolean;
        shownAuthor?: import("../../API").ShownAuthor;
        status?: import("../../API").PostStatus;
        statusOption?: import("../../API").StatusOption;
        statusOptionID?: string;
        textBlocks?: import("../../API").TextBlock[];
        title: string;
        topic?: import("../../API").Topic;
        topicID?: string;
        updated_at: any;
        version?: number;
        videoBlocks?: import("../../API").VideoBlock[];
        viewCount?: number;
        viewUsers: import("../../API").User[];
        views: any;
    });
    addModel<T extends Partial<BaseModel>>(key: keyof IApolloService.ICache, _model: T, currentQueryName?: string): void;
}
