import { RemoteRequestOption } from "./http-tools"; import React, { Dispatch, SetStateAction } from "react"; export interface ContextSession { token?: string; } export interface CapabilityEntity { /** @tag(gorm:"primarykey;uniqueId;unique;not null;size:2500;autoIncrement:false") */ uniqueId: string; } export interface CapabilityChild { uniqueId: string; children: CapabilityChild[]; } export interface CapabilitiesResult { capabilities: CapabilityEntity[]; nested: CapabilityChild[]; } export interface UserEntity { firstName: string; lastName: string; photo: string; /** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */ uniqueId: string; } export interface Token { /** @tag(gorm:"foreignKey:UserID;references:UniqueId") */ user: UserEntity | undefined; userID?: string | undefined; validUntil: string; uniqueId: string; } export interface Preference { itemKey: string; value: string; valueType: string; scope: string; /** @tag(gorm:"foreignKey:UserID;references:UniqueId") */ user: UserEntity | undefined; userID?: string | undefined; } interface RoleEntity { /** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */ uniqueId: string; /** @tag(polyglot:"name") */ name: string; parentRoleId?: string | undefined; parentRole: RoleEntity | undefined; /** @tag(gorm:"-" sql:"-") */ capabilitiesListId: string[]; /** @tag(gorm:"many2many:role_capability;foreignKey:UniqueId;references:UniqueId" json:"capabilities") */ capabilities: CapabilityEntity[]; /** @tag(gorm:"foreignKey:WorkspaceId;references:UniqueId" json:"-") */ workspace: WorkspaceEntity | undefined; /** @tag(json:"workspaceId" gorm:"size:100;") */ workspaceId?: string | undefined; } interface WorkspaceEntity { name: string; description: string; /** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */ uniqueId: string; } interface UserRoleWorkspace { /** @tag(gorm:"foreignKey:WorkspaceId;references:UniqueId") */ workspace: WorkspaceEntity | undefined; /** @tag(gorm:"size:100;") */ workspaceId?: string | undefined; /** @tag(gorm:"foreignKey:RoleId;references:UniqueId") */ role: RoleEntity | undefined; /** @tag(gorm:"size:100;") */ roleId?: string | undefined; /** @tag(gorm:"foreignKey:UserId;references:UniqueId") */ user: UserEntity | undefined; /** @tag(gorm:"size:100;") */ userId?: string | undefined; /** @tag(gorm:"primarykey;uniqueId;unique;not null;size:100;") */ uniqueId: string; } export interface AuthContext { workspaceId: string; token: string; capabilities: string[]; } export interface IRemoteQueryContext { setSession: (session: ContextSession) => void; options: RemoteRequestOption; session: ContextSession; isAuthenticated: boolean; selectedUrw?: UserRoleWorkspace; signout: () => void; selectUrw: (urw: UserRoleWorkspace) => void; activeUploads: ActiveUpload[]; setActiveUploads: Dispatch>; } export interface ActiveUpload { uploadId: string; bytesSent: number; bytesTotal: number; filename?: string; } export declare const RemoteQueryContext: any; export declare function useFileUploader(): { upload: (files: File[]) => Promise[]; activeUploads: any; }; export declare function RemoteQueryProvider({ children, remote, selectedUrw, identifier, token, preferredAcceptLanguage, defaultExecFn, }: { children: React.ReactNode; remote?: string; preferredAcceptLanguage?: string; identifier: string; selectedUrw?: UserRoleWorkspace; token?: string; defaultExecFn?: any; }): any; export {};