import { CustomDeleteOneInboxInput, Inbox, InboxFilter, InboxListForNavDocument } from '../API';
import { CRUDService, ICrudService, ServiceQueryHookOptions } from '../core';
export declare const INBOX_IDENTIFIER_MIN_LENGTH = 3;
export declare const INBOX_IDENTIFIER_MAX_LENGTH = 5;
export declare const INBOX_IDENTIFIER_INFO = "Workspace Identifier must be 3-5 characters.";
export declare const INBOX_NAME_MIN_LENGTH = 2;
export declare const INBOX_NAME_MAX_LENGTH = 30;
export declare class InboxService extends CRUDService<Inbox> {
    protected hasOneModels: ICrudService<Inbox>['hasOneModels'];
    get create(): (input: Omit<Partial<Record<"messageChannels" | "needs" | "artifacts" | "topics" | "statusOptions" | "typeOptions" | "surveys" | "savedViews" | "needAutomations", import("../../..").ModelWithId[]> & Record<"organization", import("../../..").ModelWithId>> & Omit<import("../API").InboxInput, "messageChannels" | "needs" | "organization" | "artifacts" | "topics" | "statusOptions" | "typeOptions" | "surveys" | "savedViews" | "needAutomations">, "organizationID">, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").InboxCreateOneMutation, import("../API").Exact<{
        input: import("../API").InboxInput;
    }>>>) => Promise<{
        __typename?: "Inbox";
        id: string;
        name: string;
        key: string;
        sortIndex?: number;
        typeOptions?: {
            __typename?: "TypeOption";
            id: string;
            value: string;
            inbox: {
                __typename?: "Inbox";
                id: string;
            };
        }[];
        statusOptions?: {
            __typename?: "StatusOption";
            color?: string;
            id: string;
            resolvesNeed?: boolean;
            sortIndex?: number;
            value?: string;
            inbox?: {
                __typename?: "Inbox";
                id: string;
            };
        }[];
    }>;
    get update(): (input: Partial<Record<"messageChannels" | "needs" | "artifacts" | "topics" | "statusOptions" | "typeOptions" | "surveys" | "savedViews" | "needAutomations", import("../../..").ModelWithId[]> & Record<"organization", import("../../..").ModelWithId>> & Omit<import("../API").InboxInput, "messageChannels" | "needs" | "organization" | "artifacts" | "topics" | "statusOptions" | "typeOptions" | "surveys" | "savedViews" | "needAutomations"> & {
        id: string;
    }, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").InboxUpdateOneMutation, import("../API").Exact<{
        input: import("../API").UpdateOneInboxInput;
    }>>>) => Promise<{
        __typename?: "Inbox";
        organizationID: string;
        id: string;
        name: string;
        key: string;
        sortIndex?: number;
        isArchived?: boolean;
    }>;
    get delete(): (input: {
        id: string;
        moveToID?: string;
    }) => Promise<{
        __typename?: "Inbox";
        id: string;
    }>;
    get get(): (id: string, options?: Omit<import("@apollo/client").QueryOptions<import("../API").Exact<{
        id: string;
    }>, import("../API").InboxGetQuery>, "query">) => Promise<{
        __typename?: "Inbox";
        id: string;
        name: string;
        key: string;
        isArchived?: boolean;
        statusOptions?: {
            __typename?: "StatusOption";
            color?: string;
            id: string;
            sortIndex?: number;
            resolvesNeed?: boolean;
            value?: string;
            inbox?: {
                __typename?: "Inbox";
                id: string;
            };
        }[];
        typeOptions?: {
            __typename?: "TypeOption";
            id: string;
            value: string;
            inbox: {
                __typename?: "Inbox";
                id: string;
            };
        }[];
    }>;
    get useGet(): (options: ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").InboxGetQuery, 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").InboxGetQuery, import("../API").Exact<{
            id: string;
        }>>;
        data: import("../API").InboxGetQuery;
        previousData?: import("../API").InboxGetQuery;
        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").InboxGetQuery, TSubscriptionVariables extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            id: string;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").InboxGetQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            id: string;
        }>>(mapFn: (previousQueryResult: import("../API").InboxGetQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").InboxGetQuery>, "variables">) => import("../API").InboxGetQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            id: string;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").InboxGetQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            id: string;
        }>, import("../API").InboxGetQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").InboxGetQuery>>;
        variables: import("../API").Exact<{
            id: string;
        }>;
        fetchMore: <TFetchData = import("../API").InboxGetQuery, TFetchVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            id: string;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").InboxGetQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").InboxGetQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get list(): (input: import("../API").Exact<{
        filter?: InboxFilter;
        sorting?: import("../API").InboxSort | import("../API").InboxSort[];
        paging?: import("../API").CursorPaging;
    }>, options?: import("../core").ServiceQueryOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").InboxListQuery, import("../API").Exact<{
        filter?: InboxFilter;
        sorting?: import("../API").InboxSort | import("../API").InboxSort[];
        paging?: import("../API").CursorPaging;
    }>>>) => Promise<{
        __typename?: "InboxConnection";
        totalCount: number;
        edges: {
            __typename?: "InboxEdge";
            cursor: any;
            node: {
                __typename?: "Inbox";
                id: string;
                name: string;
                key: string;
                sortIndex?: number;
                isArchived?: boolean;
                accountsCount?: number;
                usersCount?: number;
                needsCount?: number;
                resolvedNeedsCount?: number;
                urgentNeedsCount?: number;
                openNeedsCount?: number;
                openUrgentNeedsCount?: number;
                openNeedToHaveNeedsCount?: number;
                openNiceToHaveNeedsCount?: number;
                openNotUrgentNeedsCount?: number;
                openCurrentRevenue?: number;
                openClosedLostRevenue?: number;
                openPotentialRevenue?: number;
                resolvedCurrentRevenue?: number;
                resolvedClosedLostRevenue?: number;
                resolvedPotentialRevenue?: number;
                totalClosedLostRevenue?: number;
                currentRevenue?: number;
                openOpportunityRevenue?: number;
                updated_at: any;
                statusOptions?: {
                    __typename?: "StatusOption";
                    color?: string;
                    id: string;
                    value?: string;
                }[];
                typeOptions?: {
                    __typename?: "TypeOption";
                    id: string;
                    value: string;
                }[];
            };
        }[];
        pageInfo: {
            __typename?: "PageInfo";
            hasNextPage?: boolean;
            startCursor?: any;
            endCursor?: any;
            hasPreviousPage?: boolean;
        };
    }>;
    get useList(): (options: import("../core").CacheUpdateOptions<ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").InboxListQuery, import("../API").Exact<{
        filter?: InboxFilter;
        sorting?: import("../API").InboxSort | import("../API").InboxSort[];
        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").InboxListQuery, import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>;
        data: import("../API").InboxListQuery;
        previousData?: import("../API").InboxListQuery;
        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").InboxListQuery, TSubscriptionVariables extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").InboxListQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>(mapFn: (previousQueryResult: import("../API").InboxListQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").InboxListQuery>, "variables">) => import("../API").InboxListQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").InboxListQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>, import("../API").InboxListQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").InboxListQuery>>;
        variables: import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>;
        fetchMore: <TFetchData = import("../API").InboxListQuery, TFetchVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").InboxListQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").InboxListQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    useListForNav: (options: ServiceQueryHookOptions<typeof InboxListForNavDocument>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").InboxListForNavQuery, import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>;
        data: import("../API").InboxListForNavQuery;
        previousData?: import("../API").InboxListForNavQuery;
        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").InboxListForNavQuery, TSubscriptionVariables extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").InboxListForNavQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>(mapFn: (previousQueryResult: import("../API").InboxListForNavQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").InboxListForNavQuery>, "variables">) => import("../API").InboxListForNavQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").InboxListForNavQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>, import("../API").InboxListForNavQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").InboxListForNavQuery>>;
        variables: import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>;
        fetchMore: <TFetchData = import("../API").InboxListForNavQuery, TFetchVars extends import("@apollo/client").OperationVariables = import("../API").Exact<{
            filter?: InboxFilter;
            sorting?: import("../API").InboxSort | import("../API").InboxSort[];
            paging?: import("../API").CursorPaging;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").InboxListForNavQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").InboxListForNavQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    deleteAndCleanUp: (input: CustomDeleteOneInboxInput) => Promise<{
        __typename?: "Inbox";
        id: string;
    }>;
    /** Getting the first inbox from the list of inboxes. */
    getDefaultInbox: () => Promise<{
        __typename?: "Inbox";
        id: string;
        name: string;
        key: string;
        sortIndex?: number;
        isArchived?: boolean;
        accountsCount?: number;
        usersCount?: number;
        needsCount?: number;
        resolvedNeedsCount?: number;
        urgentNeedsCount?: number;
        openNeedsCount?: number;
        openUrgentNeedsCount?: number;
        openNeedToHaveNeedsCount?: number;
        openNiceToHaveNeedsCount?: number;
        openNotUrgentNeedsCount?: number;
        openCurrentRevenue?: number;
        openClosedLostRevenue?: number;
        openPotentialRevenue?: number;
        resolvedCurrentRevenue?: number;
        resolvedClosedLostRevenue?: number;
        resolvedPotentialRevenue?: number;
        totalClosedLostRevenue?: number;
        currentRevenue?: number;
        openOpportunityRevenue?: number;
        updated_at: any;
        statusOptions?: {
            __typename?: "StatusOption";
            color?: string;
            id: string;
            value?: string;
        }[];
        typeOptions?: {
            __typename?: "TypeOption";
            id: string;
            value: string;
        }[];
    }>;
    get addSurveysToInbox(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceMutationHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").AddSurveysToInboxMutation, import("../API").Exact<{
        input: import("../API").AddSurveysToInboxInput;
    }>>>>) => import("@apollo/client").MutationTuple<{
        [key: string]: any;
    }, {
        [key: string]: any;
    }, import("@apollo/client").DefaultContext, import("@apollo/client").ApolloCache<any>>;
    get removeSurveysFromInbox(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceMutationHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").RemoveSurveysFromInboxMutation, import("../API").Exact<{
        input: import("../API").RemoveSurveysFromInboxInput;
    }>>>>) => import("@apollo/client").MutationTuple<{
        [key: string]: any;
    }, {
        [key: string]: any;
    }, import("@apollo/client").DefaultContext, import("@apollo/client").ApolloCache<any>>;
    validateName: (name: string) => Promise<"Workspace name cannot be empty!" | "Workspace name must be at least 2 characters long." | "Workspace name must be maximum 30 characters long." | "Workspace already exists.">;
    validateKey: (key: string) => Promise<"Workspace Identifier cannot be empty!" | "Workspace Identifier must be at least 3 characters long." | "Workspace Identifier must be maximum 5 characters long." | "Workspace Identifier already exists.">;
    private getInboxExist;
}
