export declare type MultiplayerUser = {
    id: string;
    name: string;
    color: string;
};
export declare type MultiplayerState = {
    users: MultiplayerUser[];
    userId: string;
};
export interface MultiplayerExtensionInterface {
    onConnect(): void;
    onDisconnect(): void;
    userListUpdated(userState: MultiplayerState): void;
    receiveMessage(userId: string, message: any): void;
}
export declare class MultiplayerExtension {
    delegates: Map<string, MultiplayerExtensionInterface>;
    userState: MultiplayerState;
    constructor(userState: MultiplayerState);
    register(pluginId: string, delegate?: MultiplayerExtensionInterface): void;
    broadcastMessage?: (pluginId: string, message: any) => Promise<boolean>;
    updateUsers(userState: MultiplayerState): void;
}
