/// <reference types="node" />
import { StorageEngine } from '../types';
export declare type AliyunCallback = (error: any, response: IReplyPayload) => any;
export declare type OSS_TYPE = 'oss' | 'aws';
export declare type replyFunc = (callback: AliyunCallback) => (returnValue: string | Buffer, directReturn?: boolean, meta?: any) => Promise<void>;
export interface IReceiveParsedPayload {
    storeType: string;
    ossType: string;
    body: string;
    ossKey?: string;
    headers?: any;
    isBuffer?: boolean;
}
export interface ILogger {
    debug(...data: any[]): void;
    info(...data: any[]): void;
    warn(...data: any[]): void;
    error(...data: any[]): void;
    log(...data: any[]): void;
}
export interface IReceiverContext {
    logger?: ILogger;
}
export interface IReplyPayload {
    storeType: string;
    isBuffer?: boolean;
    body: string;
    meta?: any;
}
export interface IReceiveResponse {
    headers?: any;
    body: any;
    storeType?: string;
    cleanup: () => Promise<void>;
}
export declare function initReceiver(noOSS?: boolean, ossType?: StorageEngine, ossThreshold?: number): {
    receive: (event: Buffer | string | IReceiveParsedPayload, context?: IReceiverContext) => Promise<IReceiveResponse>;
    reply: replyFunc;
};
