import { ModelWithId } from '@parlor/components';
import { Mention, MentionCreateManyDocument, MentionEntityType, MentionType } from '../API';
import { ApolloClientService, CRUDService, ICrudService, ServiceMutationHookOptions } from '../core';
type MentionModel = ModelWithId<{
    __typename: string;
    accountID?: string;
    needID?: string;
    topicID: string;
    userID?: string;
}>;
export declare class MentionService extends CRUDService<Mention> {
    constructor(client: ApolloClientService);
    protected hasOneModels: ICrudService<Mention>['hasOneModels'];
    get create(): (input: Partial<Record<never, ModelWithId[]> & Record<import("../core").HasOneRelationsOf<Mention>, ModelWithId>> & Omit<import("../API").CreateMention, import("../core").HasOneRelationsOf<Mention>>, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").MentionCreateOneMutation, import("../API").Exact<{
        input: import("../API").CreateMention;
    }>>>) => Promise<{
        __typename?: "Mention";
        id: string;
        type: MentionType;
        entityType: MentionEntityType;
        entityID: string;
        organizationID: string;
        typeID: string;
        adminID: string;
        changeMakerID: string;
        created_at: any;
        updated_at: any;
    }>;
    get useCreate(): (options?: import("../core").CacheUpdateOptions<ServiceMutationHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").MentionCreateOneMutation, import("../API").Exact<{
        input: import("../API").CreateMention;
    }>>>>) => [(payload: import("../core").InputAndRelations<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").MentionCreateOneMutation, import("../API").Exact<{
        input: import("../API").CreateMention;
    }>>, Mention>) => Promise<{
        __typename?: "Mention";
        id: string;
        type: MentionType;
        entityType: MentionEntityType;
        entityID: string;
        organizationID: string;
        typeID: string;
        adminID: string;
        changeMakerID: string;
        created_at: any;
        updated_at: any;
    }>, import("@apollo/client").MutationResult<{
        createOne: ModelWithId;
    }>];
    get list(): (input: import("../API").Exact<{
        filter?: import("../API").MentionFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").MentionSort | import("../API").MentionSort[];
    }>, options?: import("../core").ServiceQueryOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").MentionListQuery, import("../API").Exact<{
        filter?: import("../API").MentionFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").MentionSort | import("../API").MentionSort[];
    }>>>) => Promise<{
        __typename?: "MentionConnection";
        totalCount: number;
        edges: {
            __typename?: "MentionEdge";
            node: {
                __typename?: "Mention";
                id: string;
                type: MentionType;
                entityType: MentionEntityType;
                entityID: string;
                organizationID: string;
                typeID: string;
                adminID: string;
                changeMakerID: string;
                created_at: any;
                updated_at: any;
                admin?: {
                    __typename?: "Admin";
                    id: string;
                    firstName?: string;
                    lastName?: string;
                    email: string;
                    avatar?: 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").MentionListQuery, import("../API").Exact<{
        filter?: import("../API").MentionFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").MentionSort | import("../API").MentionSort[];
    }>>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").MentionListQuery, import("../API").Exact<{
            filter?: import("../API").MentionFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").MentionSort | import("../API").MentionSort[];
        }>>;
        data: import("../API").MentionListQuery;
        previousData?: import("../API").MentionListQuery;
        error?: import("@apollo/client").ApolloError;
        errors?: readonly import("graphql").GraphQLFormattedError[];
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").MentionListQuery, TSubscriptionVariables extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: import("../API").MentionFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").MentionSort | import("../API").MentionSort[];
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").MentionListQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: import("../API").MentionFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").MentionSort | import("../API").MentionSort[];
        }>>(mapFn: (previousQueryResult: import("../API").MentionListQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").MentionListQuery>, "variables">) => import("../API").MentionListQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: import("../API").MentionFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").MentionSort | import("../API").MentionSort[];
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").MentionListQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: import("../API").MentionFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").MentionSort | import("../API").MentionSort[];
        }>, import("../API").MentionListQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").MentionListQuery>>;
        variables: import("../API").Exact<{
            filter?: import("../API").MentionFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").MentionSort | import("../API").MentionSort[];
        }>;
        fetchMore: <TFetchData = import("../API").MentionListQuery, TFetchVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: import("../API").MentionFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").MentionSort | import("../API").MentionSort[];
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").MentionListQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").MentionListQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    useCreateMany(options?: ServiceMutationHookOptions<typeof MentionCreateManyDocument>): import("@apollo/client").MutationTuple<import("../API").MentionCreateManyMutation, import("../API").Exact<{
        input: import("../API").CreateManyMentionsInput;
    }>, import("@apollo/client").DefaultContext, import("@apollo/client").ApolloCache<any>>;
    _getEntity(model: any): {
        entityID: string;
        entityType: MentionEntityType;
    };
    _getType(model: MentionModel): any;
    createMentions(model: any, adminIDs: any): Promise<{
        __typename?: "Mention";
        id: string;
        type: MentionType;
        entityType: MentionEntityType;
        entityID: string;
        organizationID: string;
        typeID: string;
        adminID: string;
        changeMakerID: string;
        created_at: any;
        updated_at: any;
    }[]>;
    findNotMentionedAdminIds(params: any, adminIDs?: string[]): Promise<string[]>;
}
export {};
