export declare type WxApi = keyof typeof wx;
export declare type CloudApi = 'callFunction' | 'callContainer';
export declare type HackApi = WxApi | CloudApi;
export interface ReqOption {
    aegisRequestStartTime: number;
    apiName: HackApi;
}
export interface HackApiCallback<RequestOption = any, SucessRes = any, FailRes = any> {
    apiName?: HackApi;
    onStart?: (options: RequestOption) => void;
    success?: (res: SucessRes, options: RequestOption) => void;
    fail?: (err: FailRes, options: RequestOption) => void;
    complete?: (err: SucessRes | FailRes, options: RequestOption) => void;
}
export declare type HackApiCallbackOption = ReqOption & HackApiCallback;
export default abstract class HackApiCore<T extends HackApiCallbackOption, U extends HackApiCallback> {
    apiName?: string;
    private callbacks;
    private isOverride;
    constructor(cb: U);
    addCallback(cb: U): void;
    protected prefixHandler(opts: T): T & {
        aegisRequestStartTime: number;
    };
    protected successHandler<R>(res: R, opts: T): void;
    protected failHandler<R>(res: R, opts: T): void;
    protected completeHandler<R>(res: R, opts: T): void;
    private override;
    protected abstract defineApiProperty(): void;
}
