import { ModelWithId } from '@parlor/components';
import { AlertDataTemplate, Attachment, PropertyMap } from '../../API';
import { ApolloClientService, CRUDService, ICrudService } from '../../core';
import { AttachmentService } from '../attachment.service';
import { PropertyMapService } from '../properties';
type AlertDataTemplateServices = {
    attachmentService: AttachmentService;
    propertyMapService: PropertyMapService;
};
export declare class AlertDataTemplateService extends CRUDService<AlertDataTemplate> {
    protected services: AlertDataTemplateServices;
    private attachmentService;
    protected hasOneModels: ICrudService<AlertDataTemplate>['hasOneModels'];
    protected hasManyModels: ICrudService<AlertDataTemplate>['hasManyModels'];
    protected propertyMapService: PropertyMapService;
    constructor(client: ApolloClientService, services: AlertDataTemplateServices, attachmentService: AttachmentService);
    updatePropertyMapSortIndexes(propertyMaps?: Array<Pick<PropertyMap, 'id' | 'sortIndex'>>): Promise<{
        __typename?: "PropertyMap";
        dataType: import("../../API").DataType;
        description?: string;
        directionality?: string;
        dropdownOptions?: string[];
        id: string;
        internalFieldName?: string;
        isCustom?: boolean;
        isMarketDataPropertyMap?: boolean;
        isDisplayable?: boolean;
        isLocked?: boolean;
        isManuallyEditable?: boolean;
        isManuallyEditableDisabled?: boolean;
        isRollUpProperty?: boolean;
        isParentAccountIdProperty?: boolean;
        operationForRollUp?: import("../../API").OperationForRollUp;
        targetPropertyForRollUpID?: string;
        displayTopLevelParentOnAccount?: boolean;
        isQueryable?: boolean;
        mapsToNativeField?: boolean;
        name: string;
        sortIndex?: number;
        required?: boolean;
        showInCreationForm?: boolean;
        objectType: import("../../API").PropertyType;
        organizationID: string;
        parlorKey?: string;
        propertyFormat?: import("../../API").PropertyFormat;
        alertDataTemplates: {
            __typename?: "AlertDataTemplate";
            id: string;
            name?: string;
        }[];
        categories?: {
            __typename?: "PropertyCategory";
            description?: string;
            id: string;
            name: string;
            order?: number;
            eventLabelsCount: number;
            objectType?: import("../../API").PropertyType;
            organizationID: string;
        }[];
        targetPropertyForRollUp?: {
            __typename?: "PropertyMap";
            id: string;
            name: string;
        };
        objectSources?: {
            __typename?: "PropertyOption";
            dataType: import("../../API").DataType;
            doNotImport?: boolean;
            id: string;
            isConfigurable?: boolean;
            isEnabled?: boolean;
            isRestricted?: boolean;
            name?: string;
            objectKey: string;
            objectSource: import("../../API").SourceOfData;
            objectType: import("../../API").PropertyType;
            organizationID: string;
            propertyMapID?: string;
            instances?: {
                __typename?: "IntegrationInstance";
                id: string;
                name: string;
                authenticated?: boolean;
                integrationDocument: {
                    __typename?: "IntegrationDocument";
                    id: string;
                    name: string;
                };
            }[];
            propertyMap?: {
                __typename?: "PropertyMap";
                id: string;
                name: string;
                objectType: import("../../API").PropertyType;
                directionality?: string;
                dropdownOptions?: string[];
            };
            propertyValueOptions?: {
                __typename?: "PropertyValueOption";
                id: string;
                objectSource?: string;
                value: string;
                propertyValueMapID?: string;
            }[];
        }[];
        valueMaps?: {
            __typename?: "PropertyValueMap";
            id: string;
            isDefault?: boolean;
            organizationID: string;
            propertyMapID?: string;
            value: string;
            isClosed?: boolean;
            isOpen?: boolean;
            isProspect?: boolean;
            isCustomer?: boolean;
            isChurned?: boolean;
            isComplete?: boolean;
            options?: {
                __typename?: "PropertyValueOption";
                id: string;
                objectSource?: string;
                organizationID: string;
                propertyOptionID?: string;
                propertyValueMapID?: string;
                value: string;
                propertyOption?: {
                    __typename?: "PropertyOption";
                    dataType: import("../../API").DataType;
                    doNotImport?: boolean;
                    id: string;
                    isConfigurable?: boolean;
                    isEnabled?: boolean;
                    isRestricted?: boolean;
                    name?: string;
                    objectKey: string;
                    objectSource: import("../../API").SourceOfData;
                    objectType: import("../../API").PropertyType;
                    organizationID: string;
                    propertyMapID?: string;
                    instances?: {
                        __typename?: "IntegrationInstance";
                        id: string;
                        name: string;
                        authenticated?: boolean;
                        integrationDocument: {
                            __typename?: "IntegrationDocument";
                            id: string;
                            name: string;
                        };
                    }[];
                    propertyMap?: {
                        __typename?: "PropertyMap";
                        id: string;
                        name: string;
                        objectType: import("../../API").PropertyType;
                        directionality?: string;
                        dropdownOptions?: string[];
                    };
                    propertyValueOptions?: {
                        __typename?: "PropertyValueOption";
                        id: string;
                        objectSource?: string;
                        value: string;
                        propertyValueMapID?: string;
                    }[];
                };
            }[];
            propertyMap?: {
                __typename?: "PropertyMap";
                id: string;
                name: string;
            };
        }[];
    }[]>;
    get create(): (input: Partial<Record<"attachments" | "properties" | "emailAlerts" | "slackAlerts" | "userQueryLiteral", ModelWithId[]> & Record<import("../../core").HasOneRelationsOf<AlertDataTemplate>, ModelWithId>> & Omit<import("../../API").CreateAlertDataTemplate, "attachments" | "properties" | "emailAlerts" | "slackAlerts" | "userQueryLiteral" | import("../../core").HasOneRelationsOf<AlertDataTemplate>>, options?: import("../../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../../API").AlertDataTemplateCreateOneMutation, import("../../API").Exact<{
        input: import("../../API").CreateAlertDataTemplate;
    }>>>) => Promise<{
        __typename?: "AlertDataTemplate";
        id: string;
        subject: string;
        callsToAction?: import("../../API").CallsToAction[];
        description: string;
        senderType?: import("../../API").SurveySenderType;
        greetingOption?: import("../../API").GreetingOption;
        name?: string;
        greetingText?: string;
        delaySendTime?: number;
        emailTo?: import("../../API").EmailToType;
        accountRoleName?: string;
        ccTeamMemberEmails?: string[];
        bccTeamMemberEmails?: string[];
        ccUserEmails?: string[];
        bccUserEmails?: string[];
        ccAccountRoles?: string[];
        bccAccountRoles?: string[];
        salutationText?: string;
        salutationOption?: import("../../API").SalutationOptionType;
        specificTeamMemberID?: string;
        surveyID?: string;
        salutationTemplate?: {
            __typename?: "DynamicHtmlTemplate";
            id: string;
            name?: string;
            html?: string;
        };
        attachments?: {
            __typename?: "Attachment";
            id: string;
            mimeType: string;
            description: string;
            signedUrl: string;
            alertDataTemplateID?: string;
        }[];
        dynamicHtmlTemplate?: {
            __typename?: "DynamicHtmlTemplate";
            id: string;
            html?: string;
            name?: string;
        };
        specificTeamMember?: {
            __typename?: "Admin";
            id: string;
            lastName?: string;
            firstName?: string;
            avatar?: string;
            email: string;
        };
        properties?: {
            __typename?: "PropertyMap";
            id: string;
            name: string;
            sortIndex?: number;
        }[];
    }>;
    get update(): (input: Partial<Record<"attachments" | "properties" | "emailAlerts" | "slackAlerts" | "userQueryLiteral", ModelWithId[]> & Record<import("../../core").HasOneRelationsOf<AlertDataTemplate>, ModelWithId>> & Omit<import("../../API").UpdateAlertDataTemplate, "attachments" | "properties" | "emailAlerts" | "slackAlerts" | "userQueryLiteral" | import("../../core").HasOneRelationsOf<AlertDataTemplate>> & {
        id: string;
    }, options?: import("../../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../../API").AlertDataTemplateUpdateOneMutation, import("../../API").Exact<{
        input: import("../../API").UpdateOneAlertDataTemplateInput;
    }>>>) => Promise<{
        __typename?: "AlertDataTemplate";
        id: string;
        subject: string;
        callsToAction?: import("../../API").CallsToAction[];
        description: string;
        senderType?: import("../../API").SurveySenderType;
        greetingOption?: import("../../API").GreetingOption;
        name?: string;
        greetingText?: string;
        delaySendTime?: number;
        emailTo?: import("../../API").EmailToType;
        accountRoleName?: string;
        ccTeamMemberEmails?: string[];
        bccTeamMemberEmails?: string[];
        ccUserEmails?: string[];
        bccUserEmails?: string[];
        ccAccountRoles?: string[];
        bccAccountRoles?: string[];
        salutationText?: string;
        salutationOption?: import("../../API").SalutationOptionType;
        specificTeamMemberID?: string;
        surveyID?: string;
        salutationTemplate?: {
            __typename?: "DynamicHtmlTemplate";
            id: string;
            name?: string;
            html?: string;
        };
        attachments?: {
            __typename?: "Attachment";
            id: string;
            mimeType: string;
            description: string;
            signedUrl: string;
            alertDataTemplateID?: string;
        }[];
        dynamicHtmlTemplate?: {
            __typename?: "DynamicHtmlTemplate";
            id: string;
            html?: string;
            name?: string;
        };
        specificTeamMember?: {
            __typename?: "Admin";
            id: string;
            lastName?: string;
            firstName?: string;
            avatar?: string;
            email: string;
        };
        properties?: {
            __typename?: "PropertyMap";
            id: string;
            name: string;
            sortIndex?: number;
        }[];
    }>;
    get get(): (id: string, options?: Omit<import("@apollo/client").QueryOptions<import("../../API").Exact<{
        id: string;
    }>, import("../../API").AlertDataTemplateGetQuery>, "query">) => Promise<{
        __typename?: "AlertDataTemplate";
        id: string;
        subject: string;
        callsToAction?: import("../../API").CallsToAction[];
        description: string;
        senderType?: import("../../API").SurveySenderType;
        greetingOption?: import("../../API").GreetingOption;
        name?: string;
        greetingText?: string;
        delaySendTime?: number;
        emailTo?: import("../../API").EmailToType;
        accountRoleName?: string;
        ccTeamMemberEmails?: string[];
        bccTeamMemberEmails?: string[];
        ccUserEmails?: string[];
        bccUserEmails?: string[];
        ccAccountRoles?: string[];
        bccAccountRoles?: string[];
        salutationText?: string;
        salutationOption?: import("../../API").SalutationOptionType;
        specificTeamMemberID?: string;
        surveyID?: string;
        salutationTemplate?: {
            __typename?: "DynamicHtmlTemplate";
            id: string;
            name?: string;
            html?: string;
        };
        attachments?: {
            __typename?: "Attachment";
            id: string;
            mimeType: string;
            description: string;
            signedUrl: string;
            alertDataTemplateID?: string;
        }[];
        dynamicHtmlTemplate?: {
            __typename?: "DynamicHtmlTemplate";
            id: string;
            html?: string;
            name?: string;
        };
        specificTeamMember?: {
            __typename?: "Admin";
            id: string;
            lastName?: string;
            firstName?: string;
            avatar?: string;
            email: string;
        };
        properties?: {
            __typename?: "PropertyMap";
            id: string;
            name: string;
            sortIndex?: number;
        }[];
    }>;
    get useGet(): (options: import("../../core").ServiceQueryHookOptions<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../../API").AlertDataTemplateGetQuery, 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").AlertDataTemplateGetQuery, import("../../API").Exact<{
            id: string;
        }>>;
        data: import("../../API").AlertDataTemplateGetQuery;
        previousData?: import("../../API").AlertDataTemplateGetQuery;
        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").AlertDataTemplateGetQuery, TSubscriptionVariables = import("../../API").Exact<{
            id: string;
        }>>(options: import("@apollo/client").SubscribeToMoreOptions<import("../../API").AlertDataTemplateGetQuery, TSubscriptionVariables, TSubscriptionData>) => () => void;
        updateQuery: <TVars = import("../../API").Exact<{
            id: string;
        }>>(mapFn: (previousQueryResult: import("../../API").AlertDataTemplateGetQuery, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, import("../../API").AlertDataTemplateGetQuery>, "variables">) => import("../../API").AlertDataTemplateGetQuery) => void;
        refetch: (variables?: Partial<import("../../API").Exact<{
            id: string;
        }>>) => Promise<import("@apollo/client").ApolloQueryResult<import("../../API").AlertDataTemplateGetQuery>>;
        reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("../../API").Exact<{
            id: string;
        }>, import("../../API").AlertDataTemplateGetQuery>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<import("../../API").AlertDataTemplateGetQuery>>;
        fetchMore: <TFetchData = import("../../API").AlertDataTemplateGetQuery, TFetchVars = import("../../API").Exact<{
            id: string;
        }>>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
            updateQuery?: (previousQueryResult: import("../../API").AlertDataTemplateGetQuery, options: {
                fetchMoreResult: TFetchData;
                variables: TFetchVars;
            }) => import("../../API").AlertDataTemplateGetQuery;
        }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
    };
    get delete(): (id: string, options?: import("../../core").MutationOptionsWithoutMutation<import("@graphql-typed-document-node/core").TypedDocumentNode<import("../../API").DeleteOneAlertDataTemplateMutation, import("../../API").Exact<{
        input: import("../../API").DeleteOneAlertDataTemplateInput;
    }>>>) => Promise<{
        __typename?: "AlertDataTemplateDeleteResponse";
        id?: string;
    }>;
    protected updateAttachments(alertDataTemplateID: string, attachmentsAndFiles: ModelWithId[]): Promise<Attachment[]>;
}
export {};
