import { AbstractProvider, AbstractSigner, Eip1193Provider } from 'ethers';
import { Contact, FetchUserContactsParams, SendEmailParams, Web3MailConfigOptions, SendEmailResponse, Web3SignerProvider, FetchMyContactsParams, PrepareEmailCampaignParams, PrepareEmailCampaignResponse, SendEmailCampaignParams, SendEmailCampaignResponse } from './types.js';
type EthersCompatibleProvider = AbstractProvider | AbstractSigner | Eip1193Provider | Web3SignerProvider | string;
export declare class IExecWeb3mail {
    private dappAddress;
    private dappWhitelistAddress;
    private graphQLClient;
    private ipfsNode;
    private ipfsGateway;
    private defaultWorkerpool;
    private iexec;
    private dataProtector;
    private initPromise;
    private ethProvider;
    private options;
    constructor(ethProvider: EthersCompatibleProvider, options?: Web3MailConfigOptions);
    init(): Promise<void>;
    fetchMyContacts(args?: FetchMyContactsParams): Promise<Contact[]>;
    fetchUserContacts(args: FetchUserContactsParams): Promise<Contact[]>;
    sendEmail(args: SendEmailParams): Promise<SendEmailResponse>;
    prepareEmailCampaign(args: PrepareEmailCampaignParams): Promise<PrepareEmailCampaignResponse>;
    sendEmailCampaign(args: SendEmailCampaignParams): Promise<SendEmailCampaignResponse>;
    private resolveConfig;
}
export {};
