import type { ClientError } from '../error';
import type { RequestOptions } from '../request';
import type { Response } from '../response';
import { HookName } from './constants';
import type { HookFn } from './type';
export declare class HookManager {
    protected items: Record<string, (undefined | HookFn)[]>;
    constructor();
    addListener(name: `${HookName}`, fn: HookFn): number;
    removeListener(name: `${HookName}`, fn: HookFn | number): void;
    removeListeners(name: `${HookName}`): void;
    triggerReqHook(input: RequestOptions): Promise<RequestOptions>;
    triggerResHook(input: Response): Promise<Response>;
    triggerErrorHook(name: `${HookName.RESPONSE_ERROR}` | `${HookName.REQUEST_ERROR}`, input: ClientError): Promise<RequestOptions | Response>;
}
