import * as axios from 'axios';
import { Method } from 'axios';
import FormData from 'form-data';

declare type FilterConstructorParams = {
    baseUrl: string;
    jwtSecretKey?: string;
    baseRemoteFilePath?: string;
};
declare class Filter {
    private baseUrl;
    private jwtSecretKey;
    private baseRemoteFilePath;
    constructor(params: FilterConstructorParams);
    private genJwtToken;
    private prepareFileBody;
    _request(method: Method, urlPath: string, options?: {
        body?: Record<string, unknown> | FormData;
        params?: Record<string, number | string> | URLSearchParams;
        headers?: Record<string, string>;
    }): Promise<axios.AxiosResponse<any, any>>;
    uploadFile(file: string | Buffer, saveAs: string, options?: {
        params: Record<string, string | number>;
    }): Promise<any>;
    createDir(dirPath: string): Promise<axios.AxiosResponse<any, any>>;
    private _delete;
    deleteFile(filePath: string): Promise<axios.AxiosResponse<any, any>>;
    deleteDir(dirPath: string): Promise<axios.AxiosResponse<any, any>>;
}

export { Filter, FilterConstructorParams };
