import { Authentication, Interceptor, ApiKeyAuth, AccessCodeDetail, AccessCodeDetails, BehalfDocumentRecords, ChangeRecipient, DocumentCreated, DocumentEdited, DocumentProperties, DocumentRecords, DocumentTags, EditDocumentRequest, EmbeddedDocumentEditJsonRequest, EmbeddedDocumentEdited, EmbeddedDocumentRequest, EmbeddedSendCreated, EmbeddedSigningLink, ExtendExpiry, PrefillFieldRequest, ReminderMessage, RemoveAuthentication, RevokeDocument, SendForSign, TeamDocumentRecords } from '../model';
import { optionsI, returnTypeI } from './';
export declare class DocumentApi {
    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;
    addAuthentication(documentId: string, accessCodeDetail?: AccessCodeDetail, options?: optionsI): Promise<returnTypeI>;
    addTag(documentTags?: DocumentTags, options?: optionsI): Promise<returnTypeI>;
    behalfDocuments(page: number, pageType?: 'BehalfOfOthers' | 'BehalfOfMe', emailAddress?: Array<string>, signers?: Array<string>, pageSize?: number, startDate?: Date, status?: Array<'None' | 'WaitingForMe' | 'WaitingForOthers' | 'NeedAttention' | 'Completed' | 'Declined' | 'Revoked' | 'Expired' | 'Draft' | 'Scheduled'>, endDate?: Date, searchKey?: string, labels?: Array<string>, nextCursor?: number, brandIds?: Array<string>, options?: optionsI): Promise<BehalfDocumentRecords>;
    cancelEditing(documentId: string, onBehalfOf?: string, options?: optionsI): Promise<returnTypeI>;
    changeAccessCode(documentId: string, accessCodeDetails: AccessCodeDetails, emailId?: string, zOrder?: number, options?: optionsI): Promise<returnTypeI>;
    changeRecipient(documentId: string, changeRecipient: ChangeRecipient, options?: optionsI): Promise<returnTypeI>;
    createEmbeddedEditUrl(documentId: string, embeddedDocumentEditJsonRequest?: EmbeddedDocumentEditJsonRequest, options?: optionsI): Promise<EmbeddedDocumentEdited>;
    createEmbeddedRequestUrlDocument(embeddedDocumentRequest?: EmbeddedDocumentRequest, options?: optionsI): Promise<EmbeddedSendCreated>;
    deleteDocument(documentId: string, deletePermanently?: boolean, options?: optionsI): Promise<returnTypeI>;
    deleteTag(documentTags?: DocumentTags, options?: optionsI): Promise<returnTypeI>;
    downloadAttachment(documentId: string, attachmentId: string, onBehalfOf?: string, options?: optionsI): Promise<Buffer>;
    downloadAuditLog(documentId: string, onBehalfOf?: string, options?: optionsI): Promise<Buffer>;
    downloadDocument(documentId: string, onBehalfOf?: string, options?: optionsI): Promise<Buffer>;
    draftSend(documentId: string, options?: optionsI): Promise<returnTypeI>;
    editDocument(documentId: string, editDocumentRequest?: EditDocumentRequest, options?: optionsI): Promise<DocumentEdited>;
    extendExpiry(documentId: string, extendExpiry?: ExtendExpiry, options?: optionsI): Promise<returnTypeI>;
    getProperties(documentId: string, options?: optionsI): Promise<DocumentProperties>;
    getEmbeddedSignLink(documentId: string, signerEmail?: string, countryCode?: string, phoneNumber?: string, signLinkValidTill?: Date, redirectUrl?: string, options?: optionsI): Promise<EmbeddedSigningLink>;
    listDocuments(page: number, sentBy?: Array<string>, recipients?: Array<string>, transmitType?: 'Sent' | 'Received' | 'Both', dateFilterType?: 'SentBetween' | 'Expiring', pageSize?: number, startDate?: Date, status?: Array<'None' | 'WaitingForMe' | 'WaitingForOthers' | 'NeedAttention' | 'Completed' | 'Declined' | 'Revoked' | 'Expired' | 'Draft' | 'Scheduled'>, endDate?: Date, searchKey?: string, labels?: Array<string>, nextCursor?: number, brandIds?: Array<string>, options?: optionsI): Promise<DocumentRecords>;
    prefillFields(documentId: string, prefillFieldRequest: PrefillFieldRequest, options?: optionsI): Promise<returnTypeI>;
    remindDocument(documentId: string, receiverEmails?: Array<string>, reminderMessage?: ReminderMessage, options?: optionsI): Promise<returnTypeI>;
    removeAuthentication(documentId: string, removeAuthentication?: RemoveAuthentication, options?: optionsI): Promise<returnTypeI>;
    revokeDocument(documentId: string, revokeDocument: RevokeDocument, options?: optionsI): Promise<returnTypeI>;
    sendDocument(sendForSign?: SendForSign, options?: optionsI): Promise<DocumentCreated>;
    teamDocuments(page: number, userId?: Array<string>, teamId?: Array<string>, transmitType?: 'Sent' | 'Received' | 'Both', dateFilterType?: 'SentBetween' | 'Expiring', pageSize?: number, startDate?: Date, status?: Array<'None' | 'WaitingForMe' | 'WaitingForOthers' | 'NeedAttention' | 'Completed' | 'Declined' | 'Revoked' | 'Expired' | 'Draft' | 'Scheduled'>, endDate?: Date, searchKey?: string, labels?: Array<string>, nextCursor?: number, brandIds?: Array<string>, options?: optionsI): Promise<TeamDocumentRecords>;
}
