import { ModelWithId } from '@parlor/components';
import { Attachment, Call } from '../API';
import { ApolloClientService, CRUDService, ICrudService } from '../core';
import { AttachmentService } from './attachment.service';
export declare class CallService extends CRUDService<Call> {
    private attachmentService;
    constructor(client: ApolloClientService, attachmentService: AttachmentService);
    protected hasOneModels: ICrudService<Call>['hasOneModels'];
    protected hasManyModels: ICrudService<Call>['hasManyModels'];
    get create(): (input: Partial<Record<"externalIDs" | "attachments" | "properties" | "accounts" | "externalAttendees" | "internalAttendees", ModelWithId[]> & Record<import("../core").HasOneRelationsOf<Call>, ModelWithId>> & Omit<import("../API").CreateCall, "externalIDs" | "attachments" | "properties" | "accounts" | "externalAttendees" | "internalAttendees" | import("../core").HasOneRelationsOf<Call>>, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").CallCreateOneMutation, import("../API").Exact<{
        input: import("../API").CreateCall;
    }>>>) => Promise<{
        __typename?: "Call";
        id: string;
        type?: string;
        title?: string;
        callDate?: any;
        duration?: number;
        toNumber?: number;
        fromNumber?: number;
        description?: string;
        recordingURL?: string;
        transcription?: string;
        accounts?: {
            __typename?: "Account";
            id: string;
            displayName?: string;
        }[];
        owner?: {
            __typename?: "Admin";
            id: string;
            avatar?: string;
            firstName?: string;
            lastName?: string;
            email: string;
        };
        user?: {
            __typename?: "User";
            id: string;
            email?: string;
            firstName?: string;
            fullName?: string;
            lastName?: string;
            vip?: boolean;
        };
        attachments: {
            __typename?: "Attachment";
            id: string;
            description: string;
            signedUrl: string;
        }[];
        externalIDs: {
            __typename?: "ExternalID";
            id: string;
            externalID: string;
            objectSource: string;
            integrationInstance?: {
                __typename?: "IntegrationInstance";
                name: string;
            };
        }[];
        externalAttendees?: {
            __typename?: "User";
            id: string;
            email?: string;
            firstName?: string;
            fullName?: string;
            lastName?: string;
            vip?: boolean;
        }[];
        internalAttendees?: {
            __typename?: "Admin";
            id: string;
            avatar?: string;
            firstName?: string;
            lastName?: string;
            email: string;
        }[];
    }>;
    get update(): (input: Partial<Record<"externalIDs" | "attachments" | "properties" | "accounts" | "externalAttendees" | "internalAttendees", ModelWithId[]> & Record<import("../core").HasOneRelationsOf<Call>, ModelWithId>> & Omit<import("../API").UpdateCall, "externalIDs" | "attachments" | "properties" | "accounts" | "externalAttendees" | "internalAttendees" | import("../core").HasOneRelationsOf<Call>> & {
        id: string;
    }, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").CallUpdateOneMutation, import("../API").Exact<{
        input: import("../API").UpdateOneCallInput;
    }>>>) => Promise<{
        __typename?: "Call";
        id: string;
        type?: string;
        title?: string;
        callDate?: any;
        duration?: number;
        toNumber?: number;
        fromNumber?: number;
        description?: string;
        recordingURL?: string;
        transcription?: string;
        accounts?: {
            __typename?: "Account";
            id: string;
            displayName?: string;
        }[];
        owner?: {
            __typename?: "Admin";
            id: string;
            avatar?: string;
            firstName?: string;
            lastName?: string;
            email: string;
        };
        user?: {
            __typename?: "User";
            id: string;
            email?: string;
            firstName?: string;
            fullName?: string;
            lastName?: string;
            vip?: boolean;
        };
        attachments: {
            __typename?: "Attachment";
            id: string;
            description: string;
            signedUrl: string;
        }[];
        externalIDs: {
            __typename?: "ExternalID";
            id: string;
            externalID: string;
            objectSource: string;
            integrationInstance?: {
                __typename?: "IntegrationInstance";
                name: string;
            };
        }[];
        externalAttendees?: {
            __typename?: "User";
            id: string;
            email?: string;
            firstName?: string;
            fullName?: string;
            lastName?: string;
            vip?: boolean;
        }[];
        internalAttendees?: {
            __typename?: "Admin";
            id: string;
            avatar?: string;
            firstName?: string;
            lastName?: string;
            email: string;
        }[];
    }>;
    get delete(): (id: string, options?: import("../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").CallDeleteOneMutation, import("../API").Exact<{
        input: import("../API").DeleteOneCallInput;
    }>>>) => Promise<{
        __typename?: "CallDeleteResponse";
        id?: string;
    }>;
    get useDelete(): (options?: import("../core").ServiceMutationHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").CallDeleteOneMutation, import("../API").Exact<{
        input: import("../API").DeleteOneCallInput;
    }>>>) => [(id?: string) => Promise<{
        __typename?: "CallDeleteResponse";
        id?: string;
    }>, import("@apollo/client").MutationResult<import("../API").CallDeleteOneMutation>];
    get list(): (input: import("../API").Exact<{
        filter?: import("../API").CallDeepFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").CallSort | import("../API").CallSort[];
    }>, options?: import("../core").ServiceQueryOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").CallListQuery, import("../API").Exact<{
        filter?: import("../API").CallDeepFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").CallSort | import("../API").CallSort[];
    }>>>) => Promise<{
        __typename?: "CallConnection";
        totalCount: number;
        edges: {
            __typename?: "CallEdge";
            cursor: any;
            node: {
                __typename?: "Call";
                id: string;
                type?: string;
                title?: string;
                callDate?: any;
                duration?: number;
                toNumber?: number;
                fromNumber?: number;
                description?: string;
                recordingURL?: string;
                transcription?: string;
                accounts?: {
                    __typename?: "Account";
                    id: string;
                    displayName?: string;
                }[];
                owner?: {
                    __typename?: "Admin";
                    id: string;
                    avatar?: string;
                    firstName?: string;
                    lastName?: string;
                    email: string;
                };
                user?: {
                    __typename?: "User";
                    id: string;
                    email?: string;
                    firstName?: string;
                    fullName?: string;
                    lastName?: string;
                    vip?: boolean;
                };
                attachments: {
                    __typename?: "Attachment";
                    id: string;
                    description: string;
                    signedUrl: string;
                }[];
                externalIDs: {
                    __typename?: "ExternalID";
                    id: string;
                    externalID: string;
                    objectSource: string;
                    integrationInstance?: {
                        __typename?: "IntegrationInstance";
                        name: string;
                    };
                }[];
                externalAttendees?: {
                    __typename?: "User";
                    id: string;
                    email?: string;
                    firstName?: string;
                    fullName?: string;
                    lastName?: string;
                    vip?: boolean;
                }[];
                internalAttendees?: {
                    __typename?: "Admin";
                    id: string;
                    avatar?: string;
                    firstName?: string;
                    lastName?: string;
                    email: string;
                }[];
            };
        }[];
        pageInfo: {
            __typename?: "PageInfo";
            endCursor?: any;
            startCursor?: any;
            hasNextPage?: boolean;
            hasPreviousPage?: boolean;
        };
    }>;
    get useList(): (options: import("../core").CacheUpdateOptions<import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").CallListQuery, import("../API").Exact<{
        filter?: import("../API").CallDeepFilter;
        paging?: import("../API").CursorPaging;
        sorting?: import("../API").CallSort | import("../API").CallSort[];
    }>>>>) => {
        isLoading: boolean;
        isRefetching: boolean;
        hasMore: any;
        refetching: boolean;
        client: import("@apollo/client").ApolloClient<any>;
        observable: import("@apollo/client").ObservableQuery<import("../API").CallListQuery, import("../API").Exact<{
            filter?: import("../API").CallDeepFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").CallSort | import("../API").CallSort[];
        }>>;
        data: import("../API").CallListQuery;
        previousData?: import("../API").CallListQuery;
        error?: import("@apollo/client").ApolloError;
        loading: boolean;
        networkStatus: import("@apollo/client").NetworkStatus;
        called: boolean;
        variables: import("../API").Exact<{
            filter?: import("../API").CallDeepFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").CallSort | import("../API").CallSort[];
        }>;
        startPolling: (pollInterval: number) => void;
        stopPolling: () => void;
        subscribeToMore: <TSubscriptionData = import("../API").CallListQuery, TSubscriptionVariables = import("../API").Exact<{
            filter?: import("../API").CallDeepFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").CallSort | import("../API").CallSort[];
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").CallListQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            filter?: import("../API").CallDeepFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").CallSort | import("../API").CallSort[];
        }>>(mapFn: (previousQueryResult: import("../API").CallListQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").CallListQuery>, "variables">) => import("../API").CallListQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            filter?: import("../API").CallDeepFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").CallSort | import("../API").CallSort[];
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").CallListQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            filter?: import("../API").CallDeepFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").CallSort | import("../API").CallSort[];
        }>, import("../API").CallListQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").CallListQuery>>;
        fetchMore: <TFetchData = import("../API").CallListQuery, TFetchVars = import("../API").Exact<{
            filter?: import("../API").CallDeepFilter;
            paging?: import("../API").CursorPaging;
            sorting?: import("../API").CallSort | import("../API").CallSort[];
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").CallListQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").CallListQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get get(): (id: string, options?: Omit<import("@apollo/client").QueryOptions<import("../API").Exact<{
        id: string;
    }>, import("../API").GetCallQuery>, "query">) => Promise<{
        __typename?: "Call";
        id: string;
        type?: string;
        title?: string;
        callDate?: any;
        duration?: number;
        toNumber?: number;
        fromNumber?: number;
        description?: string;
        recordingURL?: string;
        transcription?: string;
        accounts?: {
            __typename?: "Account";
            id: string;
            displayName?: string;
        }[];
        owner?: {
            __typename?: "Admin";
            id: string;
            avatar?: string;
            firstName?: string;
            lastName?: string;
            email: string;
        };
        user?: {
            __typename?: "User";
            id: string;
            email?: string;
            firstName?: string;
            fullName?: string;
            lastName?: string;
            vip?: boolean;
        };
        attachments: {
            __typename?: "Attachment";
            id: string;
            description: string;
            signedUrl: string;
        }[];
        externalIDs: {
            __typename?: "ExternalID";
            id: string;
            externalID: string;
            objectSource: string;
            integrationInstance?: {
                __typename?: "IntegrationInstance";
                name: string;
            };
        }[];
        externalAttendees?: {
            __typename?: "User";
            id: string;
            email?: string;
            firstName?: string;
            fullName?: string;
            lastName?: string;
            vip?: boolean;
        }[];
        internalAttendees?: {
            __typename?: "Admin";
            id: string;
            avatar?: string;
            firstName?: string;
            lastName?: string;
            email: string;
        }[];
    }>;
    get useGet(): (options: import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").GetCallQuery, 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").GetCallQuery, import("../API").Exact<{
            id: string;
        }>>;
        data: import("../API").GetCallQuery;
        previousData?: import("../API").GetCallQuery;
        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").GetCallQuery, TSubscriptionVariables = import("../API").Exact<{
            id: string;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").GetCallQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            id: string;
        }>>(mapFn: (previousQueryResult: import("../API").GetCallQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").GetCallQuery>, "variables">) => import("../API").GetCallQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            id: string;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").GetCallQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            id: string;
        }>, import("../API").GetCallQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").GetCallQuery>>;
        fetchMore: <TFetchData = import("../API").GetCallQuery, TFetchVars = import("../API").Exact<{
            id: string;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").GetCallQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").GetCallQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get useGetLazy(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceLazyQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").GetCallQuery, import("../API").Exact<{
        id: string;
    }>>>>) => import("@apollo/client").LazyQueryResultTuple<import("../API").GetCallQuery, import("../API").Exact<{
        id: string;
    }>>;
    get useGetFullTranscript(): (options?: import("../core").CacheUpdateOptions<import("../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../API").GetCallFullTranscriptQuery, 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").GetCallFullTranscriptQuery, import("../API").Exact<{
            id: string;
        }>>;
        data: import("../API").GetCallFullTranscriptQuery;
        previousData?: import("../API").GetCallFullTranscriptQuery;
        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").GetCallFullTranscriptQuery, TSubscriptionVariables = import("../API").Exact<{
            id: string;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../API").GetCallFullTranscriptQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../API").Exact<{
            id: string;
        }>>(mapFn: (previousQueryResult: import("../API").GetCallFullTranscriptQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../API").GetCallFullTranscriptQuery>, "variables">) => import("../API").GetCallFullTranscriptQuery) => void;
        refetch: (variables?: Partial<import("../API").Exact<{
            id: string;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").GetCallFullTranscriptQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../API").Exact<{
            id: string;
        }>, import("../API").GetCallFullTranscriptQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../API").GetCallFullTranscriptQuery>>;
        fetchMore: <TFetchData = import("../API").GetCallFullTranscriptQuery, TFetchVars = import("../API").Exact<{
            id: string;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../API").GetCallFullTranscriptQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../API").GetCallFullTranscriptQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    protected updateAttachments(callId: string, attachmentsAndFiles: ModelWithId[]): Promise<Attachment[]>;
    get readById(): (id: string) => import("../API").Core_Call_FieldsFragment;
}
