import { TypedDocumentNode } from '@graphql-typed-document-node/core';
import { SendAdminListCsvEmailDocument, SendNeedCsvEmailDocument, SendSlackTestAlertDocument, SendTestEmailAlertDocument, SendTopicCsvEmailDocument } from '../API';
import { ApolloClientService, ServiceQueryOptions } from '../core';
type TopicCSVDocument = typeof SendTopicCsvEmailDocument;
type NeedCSVDocument = typeof SendNeedCsvEmailDocument;
type AdminListCSVDocument = typeof SendAdminListCsvEmailDocument;
type SendTestEmailAlertDocument = typeof SendTestEmailAlertDocument;
export declare class EmailerService {
    protected client: ApolloClientService;
    constructor(client: ApolloClientService);
    protected withNotification: <Fn extends (...args: unknown[]) => Promise<unknown>>(fn: Fn) => Promise<void>;
    sendTopicCSV(options: ServiceQueryOptions<TopicCSVDocument>): Promise<void>;
    sendNeedsCSV(options: ServiceQueryOptions<NeedCSVDocument>): Promise<void>;
    sendAdminListCSV(options: ServiceQueryOptions<AdminListCSVDocument>): Promise<void>;
    sendTestEmail(options: ServiceQueryOptions<SendTestEmailAlertDocument>): Promise<import("@apollo/client").ApolloQueryResult<{
        [key: string]: any;
    }>>;
    sendTestSlackAlert(options: ServiceQueryOptions<typeof SendSlackTestAlertDocument>): Promise<import("@apollo/client").ApolloQueryResult<{
        [key: string]: any;
    }>>;
    query<T extends TypedDocumentNode>(query: T, options?: ServiceQueryOptions<T>): Promise<import("@apollo/client").ApolloQueryResult<{
        [key: string]: any;
    }>>;
}
export {};
