UNPKG

open-collaboration-monaco

Version:

Connect a single Monaco Editor to an Open Collaboration Tools session

49 lines 1.97 kB
import { UsersChangeEvent, FileNameChangeEvent } from './collaboration-instance.js'; import * as types from 'open-collaboration-protocol'; import * as monaco from 'monaco-editor'; export type MonacoCollabCallbacks = { onUserRequestsAccess: (user: types.User) => Promise<boolean>; /** * reports the status when joining or creating a room * @param info information about the changed status */ statusReporter?: (info: types.Info) => void; }; export type MonacoCollabOptions = { serverUrl: string; callbacks: MonacoCollabCallbacks; userToken?: string; roomToken?: string; useCookieAuth?: boolean; loginPageOpener?: (token: string, authenticationMetadata: types.AuthMetadata) => Promise<boolean>; }; export type OtherUserData = { peer: types.Peer; color: string; }; export type UserData = { me: types.Peer; others: OtherUserData[]; }; export type MonacoCollabApi = { createRoom: () => Promise<string | undefined>; joinRoom: (roomToken: string) => Promise<string | undefined>; leaveRoom: () => void; login: () => Promise<string | undefined>; logout: () => Promise<void | undefined>; isLoggedIn: () => Promise<boolean>; setEditor: (editor: monaco.editor.IStandaloneCodeEditor) => void; getUserData: () => Promise<UserData | undefined>; onUsersChanged: (evt: UsersChangeEvent) => void; onFileNameChange: (callback: FileNameChangeEvent) => void; getCurrentConnection: () => types.ProtocolBroadcastConnection | undefined; followUser: (id?: string) => void; getFollowedUser: () => string | undefined; setFileName: (fileName: string) => void; getFileName: () => string | undefined; setWorkspaceName: (workspaceName: string) => void; getWorkspaceName: () => string | undefined; }; export declare function monacoCollab(options: MonacoCollabOptions): MonacoCollabApi; export declare function deactivate(): void; //# sourceMappingURL=monaco-api.d.ts.map