import { Authentication, Interceptor, ApiKeyAuth, CreateTemplateRequest, DocumentCreated, EditTemplateRequest, EmbeddedCreateTemplateRequest, EmbeddedSendCreated, EmbeddedSendTemplateFormRequest, EmbeddedTemplateCreated, EmbeddedTemplateEditRequest, EmbeddedTemplateEdited, MergeAndSendForSignForm, SendForSignFromTemplateForm, TemplateCreated, TemplateProperties, TemplateRecords, TemplateTag } from '../model';
import { optionsI, returnTypeT, 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>;
    createEmbeddedRequestUrlTemplate(templateId: string, embeddedSendTemplateFormRequest?: EmbeddedSendTemplateFormRequest, options?: optionsI): Promise<returnTypeT<EmbeddedSendCreated>>;
    createEmbeddedTemplateUrl(embeddedCreateTemplateRequest?: EmbeddedCreateTemplateRequest, options?: optionsI): Promise<returnTypeT<EmbeddedTemplateCreated>>;
    createTemplate(createTemplateRequest?: CreateTemplateRequest, options?: optionsI): Promise<returnTypeT<TemplateCreated>>;
    deleteTag(templateTag?: TemplateTag, options?: optionsI): Promise<returnTypeI>;
    deleteTemplate(templateId: string, onBehalfOf?: string, options?: optionsI): Promise<returnTypeI>;
    download(templateId: string, onBehalfOf?: string, options?: optionsI): Promise<returnTypeT<Buffer>>;
    editTemplate(templateId: string, editTemplateRequest: EditTemplateRequest, options?: optionsI): Promise<returnTypeI>;
    getEmbeddedTemplateEditUrl(templateId: string, embeddedTemplateEditRequest?: EmbeddedTemplateEditRequest, options?: optionsI): Promise<returnTypeT<EmbeddedTemplateEdited>>;
    getProperties(templateId: string, options?: optionsI): Promise<returnTypeT<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>, options?: optionsI): Promise<returnTypeT<TemplateRecords>>;
    mergeAndSend(mergeAndSendForSignForm?: MergeAndSendForSignForm, options?: optionsI): Promise<returnTypeI>;
    sendUsingTemplate(templateId: string, sendForSignFromTemplateForm?: SendForSignFromTemplateForm, options?: optionsI): Promise<returnTypeT<DocumentCreated>>;
}
