import { IncomingMessage } from '../requestCompat';
import { AbTestCampaignResult } from '../model/abTestCampaignResult';
import { CreateEmailCampaign } from '../model/createEmailCampaign';
import { CreateModel } from '../model/createModel';
import { CreatedProcessId } from '../model/createdProcessId';
import { EmailExportRecipients } from '../model/emailExportRecipients';
import { GetEmailCampaign } from '../model/getEmailCampaign';
import { GetEmailCampaigns } from '../model/getEmailCampaigns';
import { GetSharedTemplateUrl } from '../model/getSharedTemplateUrl';
import { SendReport } from '../model/sendReport';
import { SendTestEmail } from '../model/sendTestEmail';
import { UpdateCampaignStatus } from '../model/updateCampaignStatus';
import { UpdateEmailCampaign } from '../model/updateEmailCampaign';
import { UploadImageModel } from '../model/uploadImageModel';
import { UploadImageToGallery } from '../model/uploadImageToGallery';
import { Authentication, Interceptor } from '../model/models';
import { ApiKeyAuth } from '../model/models';
export declare enum EmailCampaignsApiApiKeys {
    apiKey = 0,
    partnerKey = 1
}
export declare class EmailCampaignsApi {
    protected _basePath: string;
    protected _defaultHeaders: any;
    protected _useQuerystring: boolean;
    protected authentications: {
        default: Authentication;
        apiKey: ApiKeyAuth;
        partnerKey: ApiKeyAuth;
    };
    protected interceptors: Interceptor[];
    constructor(basePath?: string);
    set useQuerystring(value: boolean);
    set basePath(basePath: string);
    set defaultHeaders(defaultHeaders: any);
    get defaultHeaders(): any;
    get basePath(): string;
    setDefaultAuthentication(auth: Authentication): void;
    setApiKey(key: EmailCampaignsApiApiKeys, value: string): void;
    addInterceptor(interceptor: Interceptor): void;
    createEmailCampaign(emailCampaigns: CreateEmailCampaign, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: CreateModel;
    }>;
    deleteEmailCampaign(campaignId: number, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body?: any;
    }>;
    emailExportRecipients(campaignId: number, recipientExport?: EmailExportRecipients, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: CreatedProcessId;
    }>;
    getAbTestCampaignResult(campaignId: number, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: AbTestCampaignResult;
    }>;
    getEmailCampaign(campaignId: number, statistics?: 'globalStats' | 'linksStats' | 'statsByDomain' | 'statsByDevice' | 'statsByBrowser', options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: GetEmailCampaign;
    }>;
    getEmailCampaigns(type?: 'classic' | 'trigger', status?: 'suspended' | 'archive' | 'sent' | 'queued' | 'draft' | 'inProcess', statistics?: 'globalStats' | 'linksStats' | 'statsByDomain', startDate?: string, endDate?: string, limit?: number, offset?: number, sort?: 'asc' | 'desc', excludeHtmlContent?: boolean, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: GetEmailCampaigns;
    }>;
    getSharedTemplateUrl(campaignId: number, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: GetSharedTemplateUrl;
    }>;
    sendEmailCampaignNow(campaignId: number, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body?: any;
    }>;
    sendReport(campaignId: number, sendReport: SendReport, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body?: any;
    }>;
    sendTestEmail(campaignId: number, emailTo: SendTestEmail, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body?: any;
    }>;
    updateCampaignStatus(campaignId: number, status: UpdateCampaignStatus, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body?: any;
    }>;
    updateEmailCampaign(campaignId: number, emailCampaign: UpdateEmailCampaign, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body?: any;
    }>;
    uploadImageToGallery(uploadImage: UploadImageToGallery, options?: {
        headers: {
            [name: string]: string;
        };
    }): Promise<{
        response: IncomingMessage;
        body: UploadImageModel;
    }>;
}
