import { Slot } from '@revesuite/global/utils'; import * as Y from 'yjs'; import type { AwarenessStore } from '../awareness.js'; import { Space } from '../space.js'; import { type InlineSuggestionProvider, type StoreOptions } from '../store.js'; import type { BlockSuiteDoc } from '../yjs/index.js'; import type { Workspace } from './workspace.js'; export type WorkspaceOptions = { experimentalInlineSuggestionProvider?: InlineSuggestionProvider; } & StoreOptions; export interface PageMeta { id: string; title: string; createDate: number; /** * Note: YOU SHOULD NOT UPDATE THIS FIELD MANUALLY. * @deprecated */ subpageIds: string[]; } type WorkspaceMetaState = { pages?: Y.Array; versions?: Y.Map; name?: string; avatar?: string; }; export declare class WorkspaceMeta extends Space { private _prevPages; pageMetaAdded: Slot; pageMetaRemoved: Slot; pageMetasUpdated: Slot; commonFieldsUpdated: Slot; constructor(id: string, doc: BlockSuiteDoc, awarenessStore: AwarenessStore); get pages(): Y.Array | undefined; get name(): string | undefined; get avatar(): string | undefined; setName(name: string): void; setAvatar(avatar: string): void; get pageMetas(): PageMeta[]; getPageMeta(id: string): PageMeta | undefined; addPageMeta(page: PageMeta, index?: number): void; /** * @internal Use {@link Workspace.setPageMeta} instead */ setPageMeta(id: string, props: Partial): void; /** * Adjust the index of a page inside the pageMetss list * * @deprecated */ shiftPageMeta(pageId: string, newIndex: number): void; removePageMeta(id: string): void; /** * @internal Only for page initialization */ writeVersion(workspace: Workspace): void; /** * @internal Only for page initialization */ validateVersion(workspace: Workspace): void; private _handlePageMetaEvent; private _handleCommonFieldsEvent; private _handleWorkspaceMetaEvents; private _transformObjectToYMap; } export {}; //# sourceMappingURL=meta.d.ts.map