import { BeforeCb, AfterCb } from './type';
/**
 * 劫持 XHR.send 方法，回调 uniqId 为偶数
 */
export declare const hookXHRSend: (send: XMLHttpRequest['send'], before: BeforeCb, after: AfterCb) => (this: XMLHttpRequest, body?: Document | XMLHttpRequestBodyInit | null | undefined) => void;
/**
 * 劫持 fetch，回调 uniqId 为奇数
 */
export declare const hookFetch: (_fetch: typeof window.fetch, before: BeforeCb, after: AfterCb) => (input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>;
/**
 * 劫持 XHR 和 fetch，监听当前页面未完成的 请求数量
 */
export declare const applyIncompleteReq: (global?: Window | null | undefined, XMLHttpRequest?: {
    new (): XMLHttpRequest;
    prototype: XMLHttpRequest;
    readonly DONE: number;
    readonly HEADERS_RECEIVED: number;
    readonly LOADING: number;
    readonly OPENED: number;
    readonly UNSENT: number;
} | null | undefined) => readonly [Record<number, number>];
/**
 * 控制等待策略和强制结算
 * 结算策略: 没有进行中的请求, 没有dom变更, 没有resource or longtask
 */
export declare const waitActionComplete: (cb: () => void, forceClear: () => void, win: Window) => (() => void)[];
/**
 * 从target中获取path
 */
export declare const getDomPath: (element: HTMLElement) => string | undefined;
export declare const isSupportsElementClosest: () => boolean;
export declare const findElementWithAttributeByParents: (target: HTMLElement, attribute: string, maxParentLoops?: number) => Element | undefined;
export declare const getActionNameByAttribute: (target: HTMLElement, attribute: string) => string | undefined;
export declare const getActionName: (target: HTMLElement, attribute: string) => string;
