@veltdev/types
Version:
Velt is an SDK to add collaborative features to your product within minutes. Example: Comments like Figma, Frame.io, Google docs or sheets, Recording like Loom, Huddles like Slack and much more.
75 lines (74 loc) • 2.59 kB
TypeScript
import { ResolverConfig, ResolverResponse, RetryConfig } from "./resolver.data.model";
import { User } from "./user.data.model";
export interface UserDataProvider {
get(userIds: string[]): Promise<Record<string, User>>;
config?: ResolverConfig;
resolveTimeout?: number;
}
export interface AnonymousUserDataProvider {
resolveUserIdsByEmail(request: ResolveUserIdsByEmailRequest): Promise<ResolverResponse<Record<string, string>>>;
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<string>;
};
};
}
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];