import { BulkEditDocumentsResult, Correspondent, Document, DocumentsResponse, DocumentType, GetCorrespondentsResponse, GetDocumentTypesResponse, GetTagsResponse, Tag } from "./types";
export declare class PaperlessAPI {
    private readonly baseUrl;
    private readonly token;
    constructor(baseUrl: string, token: string);
    request<T = any>(path: string, options?: RequestInit): Promise<T>;
    bulkEditDocuments(documents: number[], method: string, parameters?: {}): Promise<BulkEditDocumentsResult>;
    postDocument(file: File, metadata?: Record<string, string | string[] | number | number[]>): Promise<string>;
    getDocuments(query?: string): Promise<DocumentsResponse>;
    getDocument(id: number): Promise<Document>;
    searchDocuments(query: string): Promise<DocumentsResponse>;
    downloadDocument(id: number, asOriginal?: boolean): Promise<import("axios").AxiosResponse<any, any>>;
    getTags(): Promise<GetTagsResponse>;
    createTag(data: Partial<Tag>): Promise<Tag>;
    updateTag(id: number, data: Partial<Tag>): Promise<Tag>;
    deleteTag(id: number): Promise<void>;
    getCorrespondents(): Promise<GetCorrespondentsResponse>;
    createCorrespondent(data: Partial<Correspondent>): Promise<Correspondent>;
    updateCorrespondent(id: number, data: Partial<Correspondent>): Promise<Correspondent>;
    deleteCorrespondent(id: number): Promise<void>;
    getDocumentTypes(): Promise<GetDocumentTypesResponse>;
    createDocumentType(data: Partial<DocumentType>): Promise<DocumentType>;
    updateDocumentType(id: number, data: Partial<DocumentType>): Promise<DocumentType>;
    deleteDocumentType(id: number): Promise<void>;
    bulkEditObjects(objects: any, objectType: any, operation: any, parameters?: {}): Promise<any>;
}
