import { ResolverConfig } 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 GetUserPermissionsRequest {
    organizationId?: string;
    folderIds?: string[];
    documentIds?: string[];
}
export interface GetUserPermissionsResponse {
    [userId: string]: {
        folders?: {
            [folderId: string]: {
                accessRole?: UserPermissionAccessRole;
                expiresAt?: number;
                error?: string;
                errorCode?: UserPermissionAccessRoleResult;
            };
        };
        organization?: {
            [organizationId: string]: {
                accessRole?: UserPermissionAccessRole;
                expiresAt?: number;
                error?: string;
                errorCode?: UserPermissionAccessRoleResult;
            };
        };
        documents?: {
            [documentId: string]: {
                accessRole?: UserPermissionAccessRole;
                expiresAt?: number;
                error?: string;
                errorCode?: UserPermissionAccessRoleResult;
            };
        };
    };
}
export declare enum UserPermissionAccessRole {
    EDITOR = "editor",
    VIEWER = "viewer"
}
export declare enum UserPermissionAccessRoleResult {
    DOES_NOT_EXIST = "does_not_exist",
    PERMISSION_DENIED = "permission_denied",
    SOMETHING_WENT_WRONG = "something_went_wrong"
}
