import { Dialog, DialogTabs } from "fwtoolkit"; import type { EditorContactsApi, EditorDocumentApi } from "../../types.js"; interface Contact { id: number | string; type: string; name: string; avatar?: string; } interface AccessRightHolder { id: number; type: string; } interface AccessRight { document_id?: number; holder: AccessRightHolder; rights: string; } interface AccessRightsTabOptions { documentIds: number[]; contacts: Contact[]; newContactCall: (contactData: Contact) => void; e2ee: boolean; documentPassword?: string; onShareSuccess?: (accessRights: AccessRight[]) => void; settings: Record; container?: HTMLElement | null; documentApi: EditorDocumentApi; contactsApi: EditorContactsApi; isOwner?: boolean; } interface AccessRightMenuItem { type?: "header" | "action" | "separator"; title: string; tooltip?: string; icon?: string; right?: string; action?: () => void; selected?: boolean; } /** * Reusable access-rights tab / panel. * * Can be embedded inside another dialog (e.g. the Document Settings dialog) * or wrapped in its own Dialog via DocumentAccessRightsDialog. */ export declare class AccessRightsTab { documentIds: number[]; contacts: Contact[]; newContactCall: (contactData: Contact) => void; singleDocumentId: number | null; e2ee: boolean; documentPassword: string; onShareSuccess?: (accessRights: AccessRight[]) => void; settings: Record; container: HTMLElement | null; accessRights: AccessRight[]; dialogTabs: DialogTabs; documentApi: EditorDocumentApi; contactsApi: EditorContactsApi; isOwner: boolean; constructor({ documentIds, contacts, newContactCall, e2ee, documentPassword, onShareSuccess, settings, container, documentApi, contactsApi, isOwner }: AccessRightsTabOptions); load(): Promise; render(): string; bindEvents(): void; getDropdownMenu(currentRight: string, onChange: (newRight: string) => void): { content: AccessRightMenuItem[]; }; loadShareTokens(): void; openCreateShareTokenDialog(): void; revokeShareToken(tokenId: number, rowEl: HTMLElement): void; submit(): Promise; } /** * Standalone dialog wrapper around AccessRightsTab. * Supports both single-document and bulk-document editing. */ export declare class DocumentAccessRightsDialog { documentIds: number[]; contacts: Contact[]; newContactCall: (contactData: Contact) => void; e2ee: boolean; documentPassword: string; onShareSuccess?: (accessRights: AccessRight[]) => void; settings: Record; isOwner: boolean; contactsApi: EditorContactsApi; documentApi: EditorDocumentApi; tab: AccessRightsTab; dialog: Dialog; constructor(documentIds: number[], contacts: Contact[], newContactCall: (contactData: Contact) => void, e2ee: boolean, documentPassword?: string, onShareSuccess?: (accessRights: AccessRight[]) => void, settings?: Record, isOwner?: boolean, contactsApi?: EditorContactsApi, documentApi?: EditorDocumentApi); init(): void; createDialog(): void; } export {}; //# sourceMappingURL=index.d.ts.map