import { StreamAccessRequestGraphQLReturn } from '@/modules/accessrequests/helpers/graphTypes' import { AccessRequestType, ServerAccessRequestRecord, StreamAccessRequestRecord } from '@/modules/accessrequests/repositories' import { Nullable, Optional } from '@speckle/shared' export type GetUsersPendingAccessRequest = < T extends AccessRequestType = AccessRequestType, I extends Nullable = Nullable >( userId: string, resourceType: T, resourceId: I ) => Promise>> export type AccessRecordInput< T extends AccessRequestType = AccessRequestType, I extends Nullable = Nullable > = Omit, 'createdAt' | 'updatedAt'> export type CreateNewRequest = < T extends AccessRequestType = AccessRequestType, I extends Nullable = Nullable >( input: AccessRecordInput ) => Promise> export type GetPendingAccessRequests = ( resourceType: T, resourceId: string ) => Promise[]> export type GetPendingAccessRequest = ( requestId: string, resourceType?: T ) => Promise>> export type DeleteRequestById = (requestId: string) => Promise export type GetUserProjectAccessRequest = ( userId: string, projectId: string ) => Promise> export type GetUserStreamAccessRequest = ( userId: string, streamId: string ) => Promise> export type RequestProjectAccess = ( userId: string, projectId: string ) => Promise export type GetPendingProjectRequests = ( projectId: string ) => Promise