import { ResolverConfig, ResolverResponse, RetryConfig } from "./resolver.data.model"; import { User } from "./user.data.model"; export interface UserDataProvider { get(userIds: string[]): Promise>; config?: ResolverConfig; resolveTimeout?: number; } export interface AnonymousUserDataProvider { resolveUserIdsByEmail(request: ResolveUserIdsByEmailRequest): Promise>>; config?: AnonymousUserDataProviderConfig; } export interface AnonymousUserDataProviderConfig { resolveTimeout?: number; getRetryConfig?: RetryConfig; } export interface ResolveUserIdsByEmailRequest { organizationId: string; documentId?: string; folderId?: string; emails: string[]; } export interface GetUserResolverRequest { organizationId: string; userIds: string[]; } export interface GetUserPermissionsRequest { organizationId?: string; folderIds?: string[]; documentIds?: string[]; } export interface GetUserPermissionsResponse { [userId: string]: { folders?: { [folderId: string]: { accessRole?: UserPermissionAccessRole; accessType?: string; expiresAt?: number; error?: string; errorCode?: UserPermissionAccessRoleResult; }; }; organization?: { [organizationId: string]: { accessRole?: UserPermissionAccessRole; expiresAt?: number; error?: string; errorCode?: UserPermissionAccessRoleResult; }; }; documents?: { [documentId: string]: { accessRole?: UserPermissionAccessRole; accessType?: string; expiresAt?: number; error?: string; errorCode?: UserPermissionAccessRoleResult; }; }; context?: { accessFields?: Array; }; }; } export declare const UserPermissionAccessRole: { readonly EDITOR: "editor"; readonly VIEWER: "viewer"; }; export type UserPermissionAccessRole = (typeof UserPermissionAccessRole)[keyof typeof UserPermissionAccessRole]; export declare const UserPermissionAccessRoleResult: { readonly DOES_NOT_EXIST: "does_not_exist"; readonly PERMISSION_DENIED: "permission_denied"; readonly SOMETHING_WENT_WRONG: "something_went_wrong"; }; export type UserPermissionAccessRoleResult = (typeof UserPermissionAccessRoleResult)[keyof typeof UserPermissionAccessRoleResult];