import { Model, SubscriptionHandler, FutureHandler } from '@multisynq/client';
export interface ViewInfo<T> {
    viewId: string;
    viewData?: T;
}
export declare class ReactModel<T = unknown> extends Model {
    __reactEvents: {
        scope: string;
        event: string;
    }[];
    __views: Map<string, ViewInfo<T>> | null;
    init(options: any): void;
    private __viewJoin;
    private __viewExit;
    handleViewJoin(viewId: string, viewInfo: ViewInfo<T>): void;
    handleViewExit(viewId: string, viewInfo: ViewInfo<T>): void;
    subscribe<T>(scope: string, event: string, handler: SubscriptionHandler<T>): void;
    private __subscribe;
    __future_wrapper(methodName: keyof this, ...args: any[]): void;
    future<T extends any[]>(tOffset: number, method?: FutureHandler<T>, ...args: T): this;
}
