import { ISerberPlugin } from '@berish/serber';
import type { Peer } from '../../peer';
import { SYMBOL_SERBER_PEER, IPrint, PrintTypeEnum } from '../abstract';
import { DeferredReceiveList } from './network';
export interface IFunction {
    (...args: any[]): any;
    meta?: {
        [key: string]: any;
    };
}
export interface IFunctionPrint extends IPrint<PrintTypeEnum.printFunction> {
    printId: string;
    name: string;
    args?: string[];
    meta?: {
        [key: string]: any;
    };
}
export declare const SYMBOL_SERBER_DEFERRED_LIST: unique symbol;
export declare const SYMBOL_SERBER_CHUNK_REPLY_PATH: unique symbol;
export interface FunctionToFunctionPrintPluginOptions {
    [SYMBOL_SERBER_PEER]: Peer;
    [SYMBOL_SERBER_DEFERRED_LIST]?: DeferredReceiveList;
    [SYMBOL_SERBER_CHUNK_REPLY_PATH]?: string;
}
export declare const functionToFunctionPrintPlugin: ISerberPlugin<IFunction, IFunctionPrint, FunctionToFunctionPrintPluginOptions>;
//# sourceMappingURL=plugin.d.ts.map