/** * Copyright 2023 Fluence Labs Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { JSONValue } from "@fluencelabs/interfaces"; import { FluencePeer } from "../jsPeer/FluencePeer.js"; import { ArgCallbackFunction } from "../util/testUtils.js"; /** * Convenience function which does all the internal work of creating particles * and making necessary service registrations in order to support Aqua function calls * * @param def - function definition generated by the Aqua compiler * @param script - air script with function execution logic generated by the Aqua compiler * @param config - options to configure Aqua function execution * @param peer - Fluence Peer to invoke the function at * @param args - args in the form of JSON where each key corresponds to the name of the argument * @returns */ export type CallAquaFunctionArgs = { script: string; config?: CallAquaFunctionConfig | undefined; peer: FluencePeer; args: { [key: string]: JSONValue | ArgCallbackFunction; }; fireAndForget: boolean; }; export type CallAquaFunctionConfig = { ttl?: number; }; export declare const callAquaFunction: ({ script, config, peer, args, fireAndForget, }: CallAquaFunctionArgs) => Promise;