import { Authentication, Interceptor, ApiKeyAuth, AccessCodeDetail, AccessCodeDetails, BehalfDocumentRecords, ChangeRecipient, DocumentCreated, DocumentProperties, DocumentRecords, DocumentTags, EmbeddedDocumentRequest, EmbeddedSendCreated, EmbeddedSigningLink, ExtendExpiry, PrefillFieldRequest, ReminderMessage, RemoveAuthentication, RevokeDocument, SendForSign, TeamDocumentRecords } from '../model';
import { optionsI, returnTypeT, 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<returnTypeT<BehalfDocumentRecords>>;
    changeAccessCode(documentId: string, accessCodeDetails: AccessCodeDetails, emailId?: string, zOrder?: number, options?: optionsI): Promise<returnTypeI>;
    changeRecipient(documentId: string, changeRecipient: ChangeRecipient, options?: optionsI): Promise<returnTypeI>;
    createEmbeddedRequestUrlDocument(embeddedDocumentRequest?: EmbeddedDocumentRequest, options?: optionsI): Promise<returnTypeT<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<returnTypeT<Buffer>>;
    downloadAuditLog(documentId: string, onBehalfOf?: string, options?: optionsI): Promise<returnTypeT<Buffer>>;
    downloadDocument(documentId: string, onBehalfOf?: string, options?: optionsI): Promise<returnTypeT<Buffer>>;
    extendExpiry(documentId: string, extendExpiry?: ExtendExpiry, options?: optionsI): Promise<returnTypeI>;
    getEmbeddedSignLink(documentId: string, signerEmail?: string, countryCode?: string, phoneNumber?: string, signLinkValidTill?: Date, redirectUrl?: string, options?: optionsI): Promise<returnTypeT<EmbeddedSigningLink>>;
    getProperties(documentId: string, options?: optionsI): Promise<returnTypeT<DocumentProperties>>;
    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<returnTypeT<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<returnTypeT<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<returnTypeT<TeamDocumentRecords>>;
}
