import { Authentication, Interceptor, ApiKeyAuth, CreateTemplateRequest, DocumentCreated, EditTemplateRequest, EmbeddedCreateTemplateRequest, EmbeddedMergeTemplateFormRequest, EmbeddedSendCreated, EmbeddedSendTemplateFormRequest, EmbeddedTemplateCreated, EmbeddedTemplateEditRequest, EmbeddedTemplateEdited, EmbeddedTemplatePreview, EmbeddedTemplatePreviewJsonRequest, MergeAndSendForSignForm, SendForSignFromTemplateForm, TemplateCreated, TemplateProperties, TemplateRecords, TemplateTag } from '../model';
import { optionsI, returnTypeI } from './';
export declare class TemplateApi {
    protected _basePath: string;
    protected _defaultHeaders: any;
    protected _useQuerystring: boolean;
    protected authentications: {
        default: Authentication;
        Bearer: ApiKeyAuth;
        'X-API-KEY': 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(apikey: string): void;
    setAccessToken(accessToken: string): void;
    addInterceptor(interceptor: Interceptor): void;
    addTag(templateTag?: TemplateTag, options?: optionsI): Promise<returnTypeI>;
    createEmbeddedPreviewUrl(templateId: string, embeddedTemplatePreviewJsonRequest?: EmbeddedTemplatePreviewJsonRequest, options?: optionsI): Promise<EmbeddedTemplatePreview>;
    createEmbeddedRequestUrlTemplate(templateId: string, embeddedSendTemplateFormRequest?: EmbeddedSendTemplateFormRequest, options?: optionsI): Promise<EmbeddedSendCreated>;
    createEmbeddedTemplateUrl(embeddedCreateTemplateRequest?: EmbeddedCreateTemplateRequest, options?: optionsI): Promise<EmbeddedTemplateCreated>;
    createTemplate(createTemplateRequest?: CreateTemplateRequest, options?: optionsI): Promise<TemplateCreated>;
    deleteTemplate(templateId: string, onBehalfOf?: string, options?: optionsI): Promise<returnTypeI>;
    deleteTag(templateTag?: TemplateTag, options?: optionsI): Promise<returnTypeI>;
    download(templateId: string, onBehalfOf?: string, includeFormFieldValues?: boolean, options?: optionsI): Promise<Buffer>;
    editTemplate(templateId: string, editTemplateRequest: EditTemplateRequest, options?: optionsI): Promise<returnTypeI>;
    getEmbeddedTemplateEditUrl(templateId: string, embeddedTemplateEditRequest?: EmbeddedTemplateEditRequest, options?: optionsI): Promise<EmbeddedTemplateEdited>;
    getProperties(templateId: string, options?: optionsI): Promise<TemplateProperties>;
    listTemplates(page: number, templateType?: 'mytemplates' | 'sharedtemplate' | 'all', pageSize?: number, searchKey?: string, onBehalfOf?: Array<string>, createdBy?: Array<string>, templateLabels?: Array<string>, startDate?: Date, endDate?: Date, brandIds?: Array<string>, sharedWithTeamId?: Array<string>, options?: optionsI): Promise<TemplateRecords>;
    mergeAndSend(mergeAndSendForSignForm?: MergeAndSendForSignForm, options?: optionsI): Promise<DocumentCreated>;
    mergeCreateEmbeddedRequestUrlTemplate(embeddedMergeTemplateFormRequest?: EmbeddedMergeTemplateFormRequest, options?: optionsI): Promise<EmbeddedSendCreated>;
    sendUsingTemplate(templateId: string, sendForSignFromTemplateForm?: SendForSignFromTemplateForm, options?: optionsI): Promise<DocumentCreated>;
}
