import type { access } from './daemon/route.js'; import { type JSONRPCError } from './errors.js'; import type { OperatorType, ValueType } from './types.js'; export interface MethodParams { path: string; event: string; value?: ValueType; } export interface UnfetchParams { id: string; } export interface FetchParams { path?: Record; value?: Record; id: string; sort?: { asArray?: boolean; descending?: boolean; by?: string; from?: number; to?: number; }; } export type MessageParams = MethodParams | FetchParams | UnfetchParams; export interface Message { id?: string; } export declare const castMessage: (msg: MethodRequest) => T; export interface ResultMessage extends Message { id: string; result: ValueType; } export interface ErrorMessage extends Message { id: string; error: JSONRPCError; } export interface MethodRequest extends Message { id: string; method: string; params?: MessageParams | AuthParams; } export interface PathParams { path: string; } export interface SetParams extends PathParams { value: ValueType; } export interface PathRequest extends Message { id: string; method: string; params: PathParams; } export interface UpdateRequest extends Message { id: string; method: string; params: SetParams; } export interface Stateparams { path: string; value?: ValueType; access?: access; } export interface MethodParams { path: string; access?: access; args?: ValueType[] | Record; } export interface AddRequest extends Stateparams, MethodParams { } export interface AuthParams { user: string; password: string; } export interface UserParams { user: string; password: string; groups: string[]; } export interface AddUserRequest { params: UserParams; } export interface AuthRequest { params: AuthParams; } export interface GetRequest extends MethodRequest { params: FetchParams; } export interface FetchRequest extends MethodRequest { params: FetchParams; } export interface UnFetchRequest extends MethodRequest { params: { id: string; }; }