///
///
import { SocketMessage } from "../SocketMessage";
import { Stream } from "stream";
import { Base, TokenUser } from "@openiap/openflow-api";
import { QueueMessageOptions } from "../amqpwrapper";
import { WebSocketServerClient } from "../WebSocketServerClient";
import { Span } from "@opentelemetry/api";
import { Workitem } from "@openiap/openflow-api";
export declare class Message {
id: string;
replyto: string;
command: string;
data: string;
jwt: string;
correlationId: string;
traceId: string;
spanId: string;
cb: any;
priority: number;
options: QueueMessageOptions;
tuser: TokenUser;
clientagent: string;
clientversion: string;
QueueProcess(options: QueueMessageOptions, parent: Span): Promise;
static fromcommand(command: string): Message;
static frommessage(msg: SocketMessage, data: string): Message;
static fromjson(json: string): Message;
Reply(command?: string): void;
EnsureJWT(cli: WebSocketServerClient, jwtrequired: boolean): Promise;
Process(cli: WebSocketServerClient): Promise;
RegisterExchange(cli: WebSocketServerClient, parent: Span): Promise;
RegisterQueue(cli: WebSocketServerClient, span: Span): Promise;
QueueMessage(cli: WebSocketServerClient, parent: Span): Promise;
CloseQueue(cli: WebSocketServerClient, parent: Span): Promise;
Send(cli: WebSocketServerClient): void;
private UnknownCommand;
private static collectionCache;
private static collectionCachetime;
private ListCollections;
private DropCollection;
private Query;
private Count;
private GetDocumentVersion;
private Aggregate;
private UnWatch;
private Watch;
private InsertOne;
private InsertMany;
private UpdateOne;
private UpdateMany;
private InsertOrUpdateOne;
private InsertOrUpdateMany;
private DeleteOne;
private DeleteMany;
private MapReduce;
static DoSignin(cli: WebSocketServerClient, rawAssertion: string, parent: Span): Promise;
Signin(cli: WebSocketServerClient, parent: Span): Promise;
private GetInstanceName;
private EnsureNoderedInstance;
private DeleteNoderedInstance;
private DeleteNoderedPod;
private RestartNoderedInstance;
private GetKubeNodeLabels;
private GetNoderedInstance;
private GetNoderedInstanceLog;
private StartNoderedInstance;
private StopNoderedInstance;
private _SaveFile;
_addFile(file: string | Buffer | Stream, filename: string, mimeType: string, metadata: Base, compressed: boolean, jwt: string): Promise;
SaveFile(cli: WebSocketServerClient): Promise;
private _GetFile;
private GetFile;
private filescount;
private filesnext;
private UpdateFile;
CreateWorkflowInstance(cli: WebSocketServerClient, parent: Span): Promise;
isObject(obj: any): boolean;
flattenAndStringify(data: any): {};
_StripeCancelPlan(resourceusageid: string, quantity: number, jwt: string, parent: Span): Promise;
StripeCancelPlan(cli: WebSocketServerClient, parent: Span): Promise;
GetNextInvoice(cli: WebSocketServerClient, parent: Span): Promise;
StripeAddPlan(cli: WebSocketServerClient, parent: Span): Promise;
_StripeAddPlan(customerid: string, userid: string, resourceid: string, stripeprice: string, quantity: number, skipSession: boolean, jwt: string, parent: Span): Promise;
Stripe(method: string, object: string, id: string, payload: any, customerid: string): Promise;
StripeMessage(cli: WebSocketServerClient): Promise;
EnsureCustomer(cli: WebSocketServerClient, parent: Span): Promise;
formatBytes(bytes: any, decimals?: number): string;
sleep(ms: any): Promise;
ReloadUserToken(cli: WebSocketServerClient, parent: Span): Promise;
static lastHouseKeeping: Date;
static ReadyForHousekeeping(): boolean;
private Housekeeping;
_Housekeeping(skipNodered: boolean, skipCalculateSize: boolean, skipUpdateUserSize: boolean, parent: Span): Promise;
SelectCustomer(parent: Span): Promise;
AddWorkitem(parent: Span): Promise;
DuplicateWorkitem(originalwi: Workitem, wiq: string, wiqid: string, jwt: string, parent: Span): Promise;
AddWorkitems(parent: Span): Promise;
UpdateWorkitem(parent: Span): Promise;
PopWorkitem(parent: Span): Promise;
DeleteWorkitem(parent: Span): Promise;
AddWorkitemQueue(cli: WebSocketServerClient, parent: Span): Promise;
GetWorkitemQueue(parent: Span): Promise;
UpdateWorkitemQueue(parent: Span): Promise;
DeleteWorkitemQueue(parent: Span): Promise;
CustomCommand(parent: Span): Promise;
}
export declare class JSONfn {
static stringify(obj: any): string;
}