import { ResultOf } from '@graphql-typed-document-node/core';
import { ModelWithId, RenderAirtableSelectorProps } from '@parlor/components/select';
import { Attachment, JiraIssuesListDocument, Need, Property, PropertyType, SourceOfData, StatusOption } from '../API';
import { ApolloClientService, CRUDService, ICrudService, ServiceListNode, ServiceReturnType } from '../core';
import { AttachmentService } from './attachment.service';
import { NeedsAndArtifactsCacheService } from './needs-and-artifacts';
import { NotificationService } from './notification.service';
import { PropertyService } from './properties';
import { TaskService } from './task.service';
import { TopicRelatedFeedbackCacheService } from './topic-related-feedback';
import { TopicService } from './topic.service';
type NeedCreateOptions<T> = T & {
    customProperties?: ServiceListNode<ServiceReturnType<'propertyMap', 'list'>>[];
};
type NeedUpdateOptions<T> = T & {
    customProperties?: ServiceListNode<ServiceReturnType<'propertyMap', 'list'>>[];
    propertyValues?: ServiceReturnType<'need', 'get'>['properties'];
};
type PropertyInput = {
    dataType: Property['dataType'];
    isDisplayed?: Property['isDisplayed'];
    name: Property['name'];
    parlorKey?: Property['parlorKey'];
    value?: any;
};
type CustomPropertyData = {
    dataType: Property['dataType'];
    isDisplayable?: Property['isDisplayed'];
    name: string;
    parlorKey?: Property['parlorKey'];
};
type AdditionInputProps = {
    airtableTask?: RenderAirtableSelectorProps;
    jiraIssue?: ResultOf<typeof JiraIssuesListDocument>['searchJiraIssues'];
};
export declare class NeedService extends CRUDService<Need> {
    private propertyService;
    private attachmentService;
    private needsAndArtifactsCacheService;
    private taskService;
    private topicService;
    private notificationService;
    protected topicRelatedFeedbackCacheService: TopicRelatedFeedbackCacheService;
    constructor(client: ApolloClientService, propertyService: PropertyService, attachmentService: AttachmentService, needsAndArtifactsCacheService: NeedsAndArtifactsCacheService, taskService: TaskService, topicService: TopicService, notificationService: NotificationService, topicRelatedFeedbackCacheService: TopicRelatedFeedbackCacheService);
    protected hasOneModels: ICrudService<Need>['hasOneModels'];
    protected hasManyModels?: ICrudService<Need>['hasManyModels'];
    get useAggregates(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedAggregateQuery, import("../API").Exact<{
        filter?: import("../API").NeedAggregateFilter;
    }>>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").NeedAggregateQuery, import("../API").Exact<{
            filter?: import("../API").NeedAggregateFilter;
        }>>;
        data: import("../API").NeedAggregateQuery;
        previousData?: import("../API").NeedAggregateQuery;
        error?: import("@apollo/client").ApolloError;
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        variables: import("../API").Exact<{
            filter?: import("../API").NeedAggregateFilter;
        }>;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").NeedAggregateQuery, TSubscriptionVariables = import("../API").Exact<{
            filter?: import("../API").NeedAggregateFilter;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").NeedAggregateQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            filter?: import("../API").NeedAggregateFilter;
        }>>(mapFn: (previousQueryResult: import("../API").NeedAggregateQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").NeedAggregateQuery>, "variables">) => import("../API").NeedAggregateQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: import("../API").NeedAggregateFilter;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedAggregateQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: import("../API").NeedAggregateFilter;
        }>, import("../API").NeedAggregateQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedAggregateQuery>>;
        fetchMore: <TFetchData = import("../API").NeedAggregateQuery, TFetchVars = import("../API").Exact<{
            filter?: import("../API").NeedAggregateFilter;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").NeedAggregateQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").NeedAggregateQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get create(): ({ attachments: attachmentsAndFiles, ...props }: Partial<Record<"externalIDs" | "tasks" | "attachments" | "properties" | "events" | "risks" | "themes" | "histories" | "notifications" | "segmentMemberships" | "notes" | "notificationPreferences" | "slackComments", ModelWithId[]> & Record<import("../core").HasOneRelationsOf<Need>, ModelWithId>> & Omit<import("../API").NeedInput, "externalIDs" | "tasks" | "attachments" | "properties" | "events" | "risks" | "themes" | "histories" | "notifications" | "segmentMemberships" | "notes" | "notificationPreferences" | "slackComments" | import("../core").HasOneRelationsOf<Need>> & AdditionInputProps, options?: NeedCreateOptions<import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedCreateOneMutation, import("../API").Exact<{
        input: import("../API").NeedInput;
    }>>>>) => Promise<{
        __typename?: "Need";
        id: string;
        description?: string;
        organizationID: string;
        urgency?: import("../API").UrgencyType;
        sentiment?: import("../API").SentimentTypes;
        seen?: boolean;
        status?: import("../API").Status;
        type?: import("../API").Type;
        isResolved?: boolean;
        isProcessed?: boolean;
        isDeleted?: boolean;
        resolvedDate?: any;
        surveyResponseID?: string;
        dueDate?: any;
        changeMakerID?: string;
        additionalDetails?: string;
        inboxID?: string;
        objectSource?: SourceOfData;
        isArchived?: boolean;
        processedDate?: any;
        device?: string;
        browser?: string;
        updated_at: any;
        created_at: any;
        attachments?: {
            __typename?: "Attachment";
            id: string;
            mimeType: string;
            description: string;
            signedUrl: string;
            needID?: string;
            artifactID?: string;
        }[];
        surveyResponse?: {
            __typename?: "SurveyResponse";
            id: string;
            survey: {
                __typename?: "Survey";
                id: string;
                name: string;
                objectSource?: SourceOfData;
                externalSurveyID?: string;
                isNative?: boolean;
            };
        };
        adminAssigned?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            created_at: any;
            updated_at: any;
        };
        adminAuthor?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            created_at: any;
            updated_at: any;
        };
        user?: {
            __typename?: "User";
            userDetails?: string;
            created_at: any;
            updated_at: any;
            id: string;
            vip?: boolean;
            email?: string;
            firstName?: string;
            lastName?: string;
            fullName?: string;
            objectSource?: SourceOfData;
            accounts?: {
                __typename?: "Account";
                adminID?: string;
                id: string;
                displayName?: string;
                vip?: boolean;
            }[];
            externalIDs?: {
                __typename?: "ExternalID";
                accountID?: string;
                email?: string;
                externalID: string;
                id: string;
                needID?: string;
                objectSource: string;
                objectType: string;
                opportunityID?: string;
                organizationID: string;
                userID?: string;
            }[];
        };
        account?: {
            __typename?: "Account";
            adminID?: string;
            id: string;
            displayName?: string;
            vip?: boolean;
        };
        inbox?: {
            __typename?: "Inbox";
            id: string;
            key: string;
            name: string;
        };
        statusOption?: {
            __typename?: "StatusOption";
            id: string;
            value?: string;
            color?: string;
            resolvesNeed?: boolean;
        };
        typeOption?: {
            __typename?: "TypeOption";
            id: string;
            value: string;
        };
        themes?: {
            __typename?: "Theme";
            id: string;
            displayName: string;
        }[];
        topic?: {
            __typename?: "Topic";
            id: string;
            name: string;
            topicKey?: number;
            statusOption?: {
                __typename?: "StatusOption";
                id: string;
                value?: string;
                color?: string;
            };
            inbox?: {
                __typename?: "Inbox";
                id: string;
                key: string;
            };
            parent?: {
                __typename?: "Topic";
                id: string;
                name: string;
                topicKey?: number;
            };
        };
        tasks?: {
            __typename?: "Task";
            id: string;
            organizationID: string;
            objectSource?: SourceOfData;
            taskKey?: string;
            projectKey?: string;
            projectName?: string;
            name?: string;
            type?: string;
            status?: string;
            description?: string;
            playbookID?: string;
            actionID?: string;
            milestoneID?: string;
            externalIDs?: {
                __typename?: "ExternalID";
                id: string;
                externalID: string;
            }[];
        }[];
        properties?: {
            __typename?: "Property";
            id: string;
            dataType: import("../API").DataType;
            organizationID: string;
            userID?: string;
            accountID?: string;
            opportunityID?: string;
            ticketID?: string;
            parlorKey: string;
            objectSource?: SourceOfData;
            type: PropertyType;
            name: string;
            TextValue?: string;
            NumberValue?: number;
            DateValue?: any;
            BooleanValue?: boolean;
            isArchived?: boolean;
            isDisplayed: boolean;
            created_at: any;
            updated_at: any;
        }[];
        artifact?: {
            __typename?: "artifact";
            id: string;
            name: string;
        };
        risks?: {
            __typename?: "Risk";
            id: string;
            value?: string;
        }[];
    }>;
    get update(): (_props: Partial<Record<"externalIDs" | "tasks" | "attachments" | "properties" | "events" | "risks" | "themes" | "histories" | "notifications" | "segmentMemberships" | "notes" | "notificationPreferences" | "slackComments", ModelWithId[]> & Record<import("../core").HasOneRelationsOf<Need>, ModelWithId>> & Omit<import("../API").NeedUpdateInput, "externalIDs" | "tasks" | "attachments" | "properties" | "events" | "risks" | "themes" | "histories" | "notifications" | "segmentMemberships" | "notes" | "notificationPreferences" | "slackComments" | import("../core").HasOneRelationsOf<Need>> & {
        id: string;
    } & AdditionInputProps, options?: NeedUpdateOptions<import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedUpdateOneMutation, import("../API").Exact<{
        input: import("../API").UpdateOneNeedInput;
    }>>>>) => Promise<{
        __typename?: "Need";
        id: string;
        description?: string;
        organizationID: string;
        urgency?: import("../API").UrgencyType;
        sentiment?: import("../API").SentimentTypes;
        seen?: boolean;
        status?: import("../API").Status;
        type?: import("../API").Type;
        isResolved?: boolean;
        isProcessed?: boolean;
        isDeleted?: boolean;
        resolvedDate?: any;
        surveyResponseID?: string;
        dueDate?: any;
        changeMakerID?: string;
        additionalDetails?: string;
        inboxID?: string;
        objectSource?: SourceOfData;
        isArchived?: boolean;
        processedDate?: any;
        device?: string;
        browser?: string;
        updated_at: any;
        created_at: any;
        attachments?: {
            __typename?: "Attachment";
            id: string;
            mimeType: string;
            description: string;
            signedUrl: string;
            needID?: string;
            artifactID?: string;
        }[];
        surveyResponse?: {
            __typename?: "SurveyResponse";
            id: string;
            survey: {
                __typename?: "Survey";
                id: string;
                name: string;
                objectSource?: SourceOfData;
                externalSurveyID?: string;
                isNative?: boolean;
            };
        };
        adminAssigned?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            created_at: any;
            updated_at: any;
        };
        adminAuthor?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            created_at: any;
            updated_at: any;
        };
        user?: {
            __typename?: "User";
            userDetails?: string;
            created_at: any;
            updated_at: any;
            id: string;
            vip?: boolean;
            email?: string;
            firstName?: string;
            lastName?: string;
            fullName?: string;
            objectSource?: SourceOfData;
            accounts?: {
                __typename?: "Account";
                adminID?: string;
                id: string;
                displayName?: string;
                vip?: boolean;
            }[];
            externalIDs?: {
                __typename?: "ExternalID";
                accountID?: string;
                email?: string;
                externalID: string;
                id: string;
                needID?: string;
                objectSource: string;
                objectType: string;
                opportunityID?: string;
                organizationID: string;
                userID?: string;
            }[];
        };
        account?: {
            __typename?: "Account";
            adminID?: string;
            id: string;
            displayName?: string;
            vip?: boolean;
        };
        inbox?: {
            __typename?: "Inbox";
            id: string;
            key: string;
            name: string;
        };
        statusOption?: {
            __typename?: "StatusOption";
            id: string;
            value?: string;
            color?: string;
            resolvesNeed?: boolean;
        };
        typeOption?: {
            __typename?: "TypeOption";
            id: string;
            value: string;
        };
        themes?: {
            __typename?: "Theme";
            id: string;
            displayName: string;
        }[];
        topic?: {
            __typename?: "Topic";
            id: string;
            name: string;
            topicKey?: number;
            statusOption?: {
                __typename?: "StatusOption";
                id: string;
                value?: string;
                color?: string;
            };
            inbox?: {
                __typename?: "Inbox";
                id: string;
                key: string;
            };
            parent?: {
                __typename?: "Topic";
                id: string;
                name: string;
                topicKey?: number;
            };
        };
        tasks?: {
            __typename?: "Task";
            id: string;
            organizationID: string;
            objectSource?: SourceOfData;
            taskKey?: string;
            projectKey?: string;
            projectName?: string;
            name?: string;
            type?: string;
            status?: string;
            description?: string;
            playbookID?: string;
            actionID?: string;
            milestoneID?: string;
            externalIDs?: {
                __typename?: "ExternalID";
                id: string;
                externalID: string;
            }[];
        }[];
        properties?: {
            __typename?: "Property";
            id: string;
            dataType: import("../API").DataType;
            organizationID: string;
            userID?: string;
            accountID?: string;
            opportunityID?: string;
            ticketID?: string;
            parlorKey: string;
            objectSource?: SourceOfData;
            type: PropertyType;
            name: string;
            TextValue?: string;
            NumberValue?: number;
            DateValue?: any;
            BooleanValue?: boolean;
            isArchived?: boolean;
            isDisplayed: boolean;
            created_at: any;
            updated_at: any;
        }[];
        artifact?: {
            __typename?: "artifact";
            id: string;
            name: string;
        };
        risks?: {
            __typename?: "Risk";
            id: string;
            value?: string;
        }[];
    }>;
    get delete(): (id: string, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedDeleteOneMutation, import("../API").Exact<{
        input: import("../API").DeleteOneNeedInput;
    }>>>) => Promise<{
        __typename?: "NeedDeleteResponse";
        id?: string;
    }>;
    get get(): (id: string, options?: Omit<import("@apollo/client").QueryOptions<import("../API").Exact<{
        id: string;
    }>, import("../API").NeedGetQuery>, "query">) => Promise<{
        __typename?: "Need";
        id: string;
        description?: string;
        organizationID: string;
        urgency?: import("../API").UrgencyType;
        sentiment?: import("../API").SentimentTypes;
        seen?: boolean;
        status?: import("../API").Status;
        type?: import("../API").Type;
        isResolved?: boolean;
        isProcessed?: boolean;
        isDeleted?: boolean;
        resolvedDate?: any;
        surveyResponseID?: string;
        dueDate?: any;
        changeMakerID?: string;
        additionalDetails?: string;
        inboxID?: string;
        objectSource?: SourceOfData;
        isArchived?: boolean;
        processedDate?: any;
        device?: string;
        browser?: string;
        updated_at: any;
        created_at: any;
        attachments?: {
            __typename?: "Attachment";
            id: string;
            mimeType: string;
            description: string;
            signedUrl: string;
            needID?: string;
            artifactID?: string;
        }[];
        surveyResponse?: {
            __typename?: "SurveyResponse";
            id: string;
            survey: {
                __typename?: "Survey";
                id: string;
                name: string;
                objectSource?: SourceOfData;
                externalSurveyID?: string;
                isNative?: boolean;
            };
        };
        adminAssigned?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            created_at: any;
            updated_at: any;
        };
        adminAuthor?: {
            __typename?: "Admin";
            id: string;
            firstName?: string;
            lastName?: string;
            email: string;
            avatar?: string;
            role: import("../API").AdminRole;
            team?: import("../API").AdminTeams;
            isCurrentMember?: boolean;
            title?: string;
            location?: string;
            bio?: string;
            created_at: any;
            updated_at: any;
        };
        user?: {
            __typename?: "User";
            userDetails?: string;
            created_at: any;
            updated_at: any;
            id: string;
            vip?: boolean;
            email?: string;
            firstName?: string;
            lastName?: string;
            fullName?: string;
            objectSource?: SourceOfData;
            accounts?: {
                __typename?: "Account";
                adminID?: string;
                id: string;
                displayName?: string;
                vip?: boolean;
            }[];
            externalIDs?: {
                __typename?: "ExternalID";
                accountID?: string;
                email?: string;
                externalID: string;
                id: string;
                needID?: string;
                objectSource: string;
                objectType: string;
                opportunityID?: string;
                organizationID: string;
                userID?: string;
            }[];
        };
        account?: {
            __typename?: "Account";
            adminID?: string;
            id: string;
            displayName?: string;
            vip?: boolean;
        };
        inbox?: {
            __typename?: "Inbox";
            id: string;
            key: string;
            name: string;
        };
        statusOption?: {
            __typename?: "StatusOption";
            id: string;
            value?: string;
            color?: string;
            resolvesNeed?: boolean;
        };
        typeOption?: {
            __typename?: "TypeOption";
            id: string;
            value: string;
        };
        themes?: {
            __typename?: "Theme";
            id: string;
            displayName: string;
        }[];
        topic?: {
            __typename?: "Topic";
            id: string;
            name: string;
            topicKey?: number;
            statusOption?: {
                __typename?: "StatusOption";
                id: string;
                value?: string;
                color?: string;
            };
            inbox?: {
                __typename?: "Inbox";
                id: string;
                key: string;
            };
            parent?: {
                __typename?: "Topic";
                id: string;
                name: string;
                topicKey?: number;
            };
        };
        tasks?: {
            __typename?: "Task";
            id: string;
            organizationID: string;
            objectSource?: SourceOfData;
            taskKey?: string;
            projectKey?: string;
            projectName?: string;
            name?: string;
            type?: string;
            status?: string;
            description?: string;
            playbookID?: string;
            actionID?: string;
            milestoneID?: string;
            externalIDs?: {
                __typename?: "ExternalID";
                id: string;
                externalID: string;
            }[];
        }[];
        properties?: {
            __typename?: "Property";
            id: string;
            dataType: import("../API").DataType;
            organizationID: string;
            userID?: string;
            accountID?: string;
            opportunityID?: string;
            ticketID?: string;
            parlorKey: string;
            objectSource?: SourceOfData;
            type: PropertyType;
            name: string;
            TextValue?: string;
            NumberValue?: number;
            DateValue?: any;
            BooleanValue?: boolean;
            isArchived?: boolean;
            isDisplayed: boolean;
            created_at: any;
            updated_at: any;
        }[];
        artifact?: {
            __typename?: "artifact";
            id: string;
            name: string;
        };
        risks?: {
            __typename?: "Risk";
            id: string;
            value?: string;
        }[];
    }>;
    get list(): (input: import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>, options?: import("../core").ServiceQueryOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedListQuery, import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>>>) => Promise<{
        __typename?: "NeedConnection";
        totalCount: number;
        edges: {
            __typename?: "NeedEdge";
            cursor: any;
            node: {
                __typename?: "Need";
                id: string;
                description?: string;
                organizationID: string;
                urgency?: import("../API").UrgencyType;
                sentiment?: import("../API").SentimentTypes;
                seen?: boolean;
                status?: import("../API").Status;
                type?: import("../API").Type;
                isResolved?: boolean;
                isProcessed?: boolean;
                isDeleted?: boolean;
                resolvedDate?: any;
                surveyResponseID?: string;
                dueDate?: any;
                changeMakerID?: string;
                additionalDetails?: string;
                inboxID?: string;
                objectSource?: SourceOfData;
                isArchived?: boolean;
                processedDate?: any;
                device?: string;
                browser?: string;
                updated_at: any;
                created_at: any;
                surveyResponse?: {
                    __typename?: "SurveyResponse";
                    id: string;
                    survey: {
                        __typename?: "Survey";
                        id: string;
                        name: string;
                        objectSource?: SourceOfData;
                        externalSurveyID?: string;
                        isNative?: boolean;
                    };
                };
                adminAssigned?: {
                    __typename?: "Admin";
                    id: string;
                    firstName?: string;
                    lastName?: string;
                    email: string;
                    avatar?: string;
                    role: import("../API").AdminRole;
                    team?: import("../API").AdminTeams;
                    isCurrentMember?: boolean;
                    title?: string;
                    location?: string;
                    bio?: string;
                    created_at: any;
                    updated_at: any;
                };
                adminAuthor?: {
                    __typename?: "Admin";
                    id: string;
                    firstName?: string;
                    lastName?: string;
                    email: string;
                    avatar?: string;
                    role: import("../API").AdminRole;
                    team?: import("../API").AdminTeams;
                    isCurrentMember?: boolean;
                    title?: string;
                    location?: string;
                    bio?: string;
                    created_at: any;
                    updated_at: any;
                };
                user?: {
                    __typename?: "User";
                    id: string;
                    vip?: boolean;
                    email?: string;
                    firstName?: string;
                    lastName?: string;
                    fullName?: string;
                    objectSource?: SourceOfData;
                    accounts?: {
                        __typename?: "Account";
                        adminID?: string;
                        id: string;
                        displayName?: string;
                        vip?: boolean;
                    }[];
                };
                account?: {
                    __typename?: "Account";
                    adminID?: string;
                    id: string;
                    vip?: boolean;
                    displayName?: string;
                };
                inbox?: {
                    __typename?: "Inbox";
                    id: string;
                    key: string;
                    name: string;
                };
                statusOption?: {
                    __typename?: "StatusOption";
                    id: string;
                    value?: string;
                    color?: string;
                    resolvesNeed?: boolean;
                };
                typeOption?: {
                    __typename?: "TypeOption";
                    id: string;
                    value: string;
                };
                themes?: {
                    __typename?: "Theme";
                    id: string;
                    displayName: string;
                }[];
                topic?: {
                    __typename?: "Topic";
                    id: string;
                    name: string;
                    topicKey?: number;
                    statusOption?: {
                        __typename?: "StatusOption";
                        id: string;
                        value?: string;
                        color?: string;
                    };
                    inbox?: {
                        __typename?: "Inbox";
                        id: string;
                        key: string;
                    };
                    parent?: {
                        __typename?: "Topic";
                        id: string;
                        name: string;
                        topicKey?: number;
                    };
                };
                tasks?: {
                    __typename?: "Task";
                    id: string;
                    organizationID: string;
                    objectSource?: SourceOfData;
                    taskKey?: string;
                    projectKey?: string;
                    projectName?: string;
                    name?: string;
                    type?: string;
                    status?: string;
                    description?: string;
                }[];
                properties?: {
                    __typename?: "Property";
                    id: string;
                    dataType: import("../API").DataType;
                    organizationID: string;
                    userID?: string;
                    accountID?: string;
                    opportunityID?: string;
                    ticketID?: string;
                    parlorKey: string;
                    objectSource?: SourceOfData;
                    type: PropertyType;
                    name: string;
                    TextValue?: string;
                    NumberValue?: number;
                    DateValue?: any;
                    BooleanValue?: boolean;
                    isArchived?: boolean;
                    isDisplayed: boolean;
                    created_at: any;
                    updated_at: any;
                }[];
                artifact?: {
                    __typename?: "artifact";
                    id: string;
                    name: string;
                };
                risks?: {
                    __typename?: "Risk";
                    id: string;
                    value?: string;
                }[];
                attachments?: {
                    __typename?: "Attachment";
                    artifactID?: string;
                    needID?: string;
                    description: string;
                }[];
            };
        }[];
        pageInfo: {
            __typename?: "PageInfo";
            endCursor?: any;
            hasNextPage?: boolean;
            hasPreviousPage?: boolean;
            startCursor?: any;
        };
    }>;
    get useList(): (options: import("../core").CacheUpdateOptions<import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedListQuery, import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").NeedListQuery, import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>;
        data: import("../API").NeedListQuery;
        previousData?: import("../API").NeedListQuery;
        error?: import("@apollo/client").ApolloError;
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        variables: import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").NeedListQuery, TSubscriptionVariables = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").NeedListQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(mapFn: (previousQueryResult: import("../API").NeedListQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").NeedListQuery>, "variables">) => import("../API").NeedListQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedListQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>, import("../API").NeedListQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedListQuery>>;
        fetchMore: <TFetchData = import("../API").NeedListQuery, TFetchVars = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").NeedListQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").NeedListQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get listSimple(): (input: import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>, options?: import("../core").ServiceQueryOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedListSimpleQuery, import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>>>) => Promise<{
        __typename?: "NeedConnection";
        totalCount: number;
        edges: {
            __typename?: "NeedEdge";
            cursor: any;
            node: {
                __typename?: "Need";
                id: string;
            };
        }[];
        pageInfo: {
            __typename?: "PageInfo";
            endCursor?: any;
            hasNextPage?: boolean;
            hasPreviousPage?: boolean;
            startCursor?: any;
        };
    }>;
    get useListSimple(): (options: import("../core").CacheUpdateOptions<import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedListSimpleQuery, import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").NeedListSimpleQuery, import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>;
        data: import("../API").NeedListSimpleQuery;
        previousData?: import("../API").NeedListSimpleQuery;
        error?: import("@apollo/client").ApolloError;
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        variables: import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").NeedListSimpleQuery, TSubscriptionVariables = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").NeedListSimpleQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(mapFn: (previousQueryResult: import("../API").NeedListSimpleQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").NeedListSimpleQuery>, "variables">) => import("../API").NeedListSimpleQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedListSimpleQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>, import("../API").NeedListSimpleQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedListSimpleQuery>>;
        fetchMore: <TFetchData = import("../API").NeedListSimpleQuery, TFetchVars = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").NeedListSimpleQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").NeedListSimpleQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get useLazyList(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceLazyQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedListQuery, import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>>>>) => import("@apollo/client").LazyQueryResultTuple<import("../API").NeedListQuery, import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>>;
    get useListFilters(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedListForFilterQuery, import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").NeedListForFilterQuery, import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>;
        data: import("../API").NeedListForFilterQuery;
        previousData?: import("../API").NeedListForFilterQuery;
        error?: import("@apollo/client").ApolloError;
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        variables: import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").NeedListForFilterQuery, TSubscriptionVariables = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").NeedListForFilterQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(mapFn: (previousQueryResult: import("../API").NeedListForFilterQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").NeedListForFilterQuery>, "variables">) => import("../API").NeedListForFilterQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedListForFilterQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>, import("../API").NeedListForFilterQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedListForFilterQuery>>;
        fetchMore: <TFetchData = import("../API").NeedListForFilterQuery, TFetchVars = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").NeedListForFilterQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").NeedListForFilterQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get useGet(): (options: import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").NeedGetQuery, import("../API").Exact<{
        id: string;
    }>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").NeedGetQuery, import("../API").Exact<{
            id: string;
        }>>;
        data: import("../API").NeedGetQuery;
        previousData?: import("../API").NeedGetQuery;
        error?: import("@apollo/client").ApolloError;
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        variables: import("../API").Exact<{
            id: string;
        }>;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").NeedGetQuery, TSubscriptionVariables = import("../API").Exact<{
            id: string;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").NeedGetQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            id: string;
        }>>(mapFn: (previousQueryResult: import("../API").NeedGetQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").NeedGetQuery>, "variables">) => import("../API").NeedGetQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            id: string;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedGetQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            id: string;
        }>, import("../API").NeedGetQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").NeedGetQuery>>;
        fetchMore: <TFetchData = import("../API").NeedGetQuery, TFetchVars = import("../API").Exact<{
            id: string;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").NeedGetQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").NeedGetQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get useThemeListNeeds(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").ThemeListNeedsQuery, import("../API").Exact<{
        filter?: import("../API").NeedFilter;
        sorting?: import("../API").NeedSort | import("../API").NeedSort[];
        paging?: import("../API").CursorPaging;
    }>>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").ThemeListNeedsQuery, import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>;
        data: import("../API").ThemeListNeedsQuery;
        previousData?: import("../API").ThemeListNeedsQuery;
        error?: import("@apollo/client").ApolloError;
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        variables: import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").ThemeListNeedsQuery, TSubscriptionVariables = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").ThemeListNeedsQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(mapFn: (previousQueryResult: import("../API").ThemeListNeedsQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").ThemeListNeedsQuery>, "variables">) => import("../API").ThemeListNeedsQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").ThemeListNeedsQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>, import("../API").ThemeListNeedsQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").ThemeListNeedsQuery>>;
        fetchMore: <TFetchData = import("../API").ThemeListNeedsQuery, TFetchVars = import("../API").Exact<{
            filter?: import("../API").NeedFilter;
            sorting?: import("../API").NeedSort | import("../API").NeedSort[];
            paging?: import("../API").CursorPaging;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").ThemeListNeedsQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").ThemeListNeedsQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    protected serializeProperties<T extends CustomPropertyData>(customProperties: T[], getValue: (item: T) => any): PropertyInput[];
    protected serializePropertyInput(needID: string, property: PropertyInput): Parameters<PropertyService['create']>[0];
    protected updateCustomProperties(needID: string, oldProperties?: NeedUpdateOptions<unknown>['propertyValues'], newProperties?: PropertyInput[]): Promise<{
        __typename?: "Property";
        id: string;
        dataType: import("../API").DataType;
        organizationID: string;
        userID?: string;
        accountID?: string;
        opportunityID?: string;
        ticketID?: string;
        parlorKey: string;
        objectSource?: SourceOfData;
        type: PropertyType;
        name: string;
        TextValue?: string;
        NumberValue?: number;
        DateValue?: any;
        BooleanValue?: boolean;
        isArchived?: boolean;
        isDisplayed: boolean;
        created_at: any;
        updated_at: any;
    }>[];
    protected updateAttachments(needId: string, attachmentsAndFiles: ModelWithId[]): Promise<Attachment[]>;
    handleInboxChange: <T extends {
        id: string;
        inbox?: {
            id: string;
        };
    }>(updates: T) => T;
    handleStatusOptionChange: <T extends {
        id: string;
        statusOption?: Partial<StatusOption>;
    }>(updates: T) => T;
}
export {};
