import { BaseAPIRequestFactory } from './baseapi';
import { Configuration } from '../configuration';
import { RequestContext, ResponseContext, HttpInfo } from '../http/http';
import { AbTestCreateRequestVNext } from '../models/AbTestCreateRequestVNext';
import { CollectionResponseWithTotalPublicEmailVersion } from '../models/CollectionResponseWithTotalPublicEmailVersion';
import { EmailCloneRequestVNext } from '../models/EmailCloneRequestVNext';
import { EmailUpdateRequest } from '../models/EmailUpdateRequest';
import { PublicEmail } from '../models/PublicEmail';
import { PublicEmailVersion } from '../models/PublicEmailVersion';
export declare class EmailsApiRequestFactory extends BaseAPIRequestFactory {
    archive(emailId: string, archived?: boolean, _options?: Configuration): Promise<RequestContext>;
    clone(emailCloneRequestVNext: EmailCloneRequestVNext, _options?: Configuration): Promise<RequestContext>;
    createAbTestVariation(abTestCreateRequestVNext: AbTestCreateRequestVNext, _options?: Configuration): Promise<RequestContext>;
    getAbTestVariation(emailId: string, archived?: boolean, includedProperties?: Array<string>, includeStats?: boolean, marketingCampaignNames?: boolean, variantStats?: boolean, workflowNames?: boolean, _options?: Configuration): Promise<RequestContext>;
    getById(emailId: string, archived?: boolean, includedProperties?: Array<string>, includeStats?: boolean, marketingCampaignNames?: boolean, variantStats?: boolean, workflowNames?: boolean, _options?: Configuration): Promise<RequestContext>;
    getDraft(emailId: string, _options?: Configuration): Promise<RequestContext>;
    getRevisionById(emailId: string, revisionId: string, _options?: Configuration): Promise<RequestContext>;
    getRevisions(emailId: string, after?: string, before?: string, limit?: number, _options?: Configuration): Promise<RequestContext>;
    publishOrSend(emailId: string, _options?: Configuration): Promise<RequestContext>;
    resetDraft(emailId: string, _options?: Configuration): Promise<RequestContext>;
    restoreDraftRevision(emailId: string, revisionId: number, _options?: Configuration): Promise<RequestContext>;
    restoreRevision(emailId: string, revisionId: string, _options?: Configuration): Promise<RequestContext>;
    unpublishOrCancel(emailId: string, _options?: Configuration): Promise<RequestContext>;
    update(emailId: string, emailUpdateRequest: EmailUpdateRequest, archived?: boolean, _options?: Configuration): Promise<RequestContext>;
    upsertDraft(emailId: string, emailUpdateRequest: EmailUpdateRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class EmailsApiResponseProcessor {
    archiveWithHttpInfo(response: ResponseContext): Promise<HttpInfo<void>>;
    cloneWithHttpInfo(response: ResponseContext): Promise<HttpInfo<PublicEmail>>;
    createAbTestVariationWithHttpInfo(response: ResponseContext): Promise<HttpInfo<PublicEmail>>;
    getAbTestVariationWithHttpInfo(response: ResponseContext): Promise<HttpInfo<PublicEmail>>;
    getByIdWithHttpInfo(response: ResponseContext): Promise<HttpInfo<PublicEmail>>;
    getDraftWithHttpInfo(response: ResponseContext): Promise<HttpInfo<PublicEmail>>;
    getRevisionByIdWithHttpInfo(response: ResponseContext): Promise<HttpInfo<PublicEmailVersion>>;
    getRevisionsWithHttpInfo(response: ResponseContext): Promise<HttpInfo<CollectionResponseWithTotalPublicEmailVersion>>;
    publishOrSendWithHttpInfo(response: ResponseContext): Promise<HttpInfo<void>>;
    resetDraftWithHttpInfo(response: ResponseContext): Promise<HttpInfo<void>>;
    restoreDraftRevisionWithHttpInfo(response: ResponseContext): Promise<HttpInfo<PublicEmail>>;
    restoreRevisionWithHttpInfo(response: ResponseContext): Promise<HttpInfo<void>>;
    unpublishOrCancelWithHttpInfo(response: ResponseContext): Promise<HttpInfo<void>>;
    updateWithHttpInfo(response: ResponseContext): Promise<HttpInfo<PublicEmail>>;
    upsertDraftWithHttpInfo(response: ResponseContext): Promise<HttpInfo<PublicEmail>>;
}
