import { DriveContext } from './context';
import { DriveFunc, DriverMiddleware, DriverOptions, DriverParams, MiddlewarePattern } from './types';
export declare class Driver {
    private hooks?;
    private randomId;
    private stringify;
    private parser;
    private middlewares;
    constructor(opts?: DriverParams);
    use: (pattern: MiddlewarePattern, middleware: DriverMiddleware) => this;
    request: <T>({ api, use, data, timeout, attchment, receiver, parse, stringify, ...init }: DriverOptions<T>) => Promise<Required<DriveContext<T>>>;
    drive: DriveFunc;
}
