import { Dict } from 'tslang'; import { ISyncableObject, SyncableRef } from './syncable'; /** * Indicates whether a context is initiated by server or user (including the * correspondent user context on server). * * E.g. If a client connects to a server, the server creates a context with * type 'user'. But for some changes initiated by server API * (server.update(group, change)), the context has type 'server'. */ export declare type ContextType = 'server' | 'user'; export declare type ContextEnvironment = 'server' | 'client'; declare abstract class Context { readonly type: ContextType; readonly environment: ContextEnvironment; ref: SyncableRef; object: TSyncableObject; queryMetadataDict: Partial; constructor(type: ContextType, environment: ContextEnvironment, ref: SyncableRef | undefined); abstract get disabled(): boolean; setRef(ref: SyncableRef): void; setObject(object: TSyncableObject): void; setQueryMetadata(name: string, metadata: unknown): void; } export interface IContext> extends Context { } export declare const AbstractContext: typeof Context; export {};