import { ObjectEditOperation } from './objectEditOperation'; export declare const enum RemoteTaskType { Socket = 0, Token = 1, Message = 2 } export declare const enum SocketRemoteTaskAction { Disconnect = 0, Deauthenticate = 1, Transmit = 2 } export declare const enum SocketRemoteTaskTarget { UserIds = 0, TokenIds = 1, AllSockets = 2, SocketSids = 3, AuthUserGroups = 4, DefaultUserGroup = 5 } export interface AbstractSocketRemoteTask { type: RemoteTaskType.Socket; ids: (string | number)[] | true; action: SocketRemoteTaskAction; target: SocketRemoteTaskTarget; exceptSocketSids?: string[]; payload?: Record; } export interface SocketRemoteDisconnectTask extends AbstractSocketRemoteTask { action: SocketRemoteTaskAction.Disconnect; payload: { code?: any; data?: any; }; } export interface SocketRemoteDeauthenticateTask extends AbstractSocketRemoteTask { action: SocketRemoteTaskAction.Deauthenticate; } export declare type SocketRemoteTask = SocketRemoteDisconnectTask | SocketRemoteDeauthenticateTask; export declare const enum TokenRemoteTaskAction { UpdateUserTokens = 0, UpdateGroupTokens = 1 } export interface AbstractTokenRemoteTask { type: RemoteTaskType.Token; action: TokenRemoteTaskAction; operations: ObjectEditOperation[]; target: string | number; exceptSocketSids?: string[]; } export interface MessageRemoteTask { type: RemoteTaskType.Message; payload: any; } export declare type RemoteTask = SocketRemoteTask | AbstractTokenRemoteTask | MessageRemoteTask;