import { Readable } from 'stream';
import { StorageClient } from './StorageClient';
import { TransformMiddleware, ReqWithBodyOptions, ReqOptions, uploadData } from './interfaces';
export declare class ObjectStorage {
    private client;
    private forwards;
    private reverses;
    constructor(config: {
        uri: string;
        jwtSecret?: string;
        userAgent?: string;
        msgId?: string;
    }, client?: StorageClient);
    private applyMiddlewares;
    private getDataByResponseType;
    private payloadToStream;
    private formStreamGetter;
    use(forward: TransformMiddleware, reverse: TransformMiddleware): ObjectStorage;
    /**
     * @param dataOrFunc async function returning stream OR any data (except 'undefined')
     */
    add(dataOrFunc: uploadData | (() => Promise<Readable>), reqWithBodyOptions?: ReqWithBodyOptions): Promise<any>;
    /**
     * @param dataOrFunc async function returning stream OR any data (except 'undefined')
     */
    update(objectId: string, dataOrFunc: uploadData | (() => Promise<Readable>), reqWithBodyOptions?: ReqWithBodyOptions): Promise<any>;
    getOne(objectId: string, reqOptions?: ReqOptions): Promise<any>;
    getAllByParams(params: object, reqOptions?: ReqOptions): Promise<any>;
    getHeaders(objectId: string, reqOptions?: ReqOptions): Promise<any>;
    deleteOne(objectId: string, reqOptions?: ReqOptions): Promise<import("axios").AxiosResponse<any, any>>;
    deleteAllByParams(params: object, reqOptions?: ReqOptions): Promise<import("axios").AxiosResponse<any, any>>;
}
