@datalayer/core
Version:
[](https://datalayer.io)
828 lines • 58.6 kB
TypeScript
/**
* TanStack Query-based cache hook for Datalayer API
*
* This is a modernized replacement for useCache.tsx that leverages TanStack Query
* for automatic cache management, background refetching, and optimistic updates.
*
* Key improvements over useCache:
* - Automatic cache management (no manual Map objects)
* - Built-in loading/error states
* - Automatic refetching and deduplication
* - Optimistic updates support
* - Better TypeScript inference
* - React Query DevTools integration
*
* @example
* ```tsx
* const { useUser, useUpdateUser } = useCache2();
*
* function UserProfile({ userId }: { userId: string }) {
* const { data: user, isPending, isError, error } = useUser(userId);
* const updateUser = useUpdateUser();
*
* if (isPending) return <Spinner />;
* if (isError) return <Error message={error.message} />;
*
* return (
* <div>
* <h1>{user.displayName}</h1>
* <button onClick={() => updateUser.mutate({ email: 'new@email.com' })}>
* Update Email
* </button>
* </div>
* );
* }
* ```
*/
import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
import { IAnyOrganization, IAnySpace, IAssignment, ICell, IContact, ICourse, IDataset, IDatasource, IDocument, IEnvironment, IExercise, IIAMToken, ILesson, INotebook, IOrganization, IPage, ISchool, ISecret, ITeam, IUser, IUserOnboarding, IUserSettings } from '../models';
type CacheProps = {
loginRoute?: string;
};
type ISearchOpts = {
q: string;
types: string[];
max: number;
public: boolean;
};
/**
* Centralized query key factories for all entities
* Following TanStack Query best practices for key structure
* @see https://tanstack.com/query/latest/docs/framework/react/guides/query-keys
*/
export declare const queryKeys: {
readonly auth: {
readonly me: () => readonly ["auth", "me"];
readonly whoami: () => readonly ["auth", "whoami"];
};
readonly users: {
readonly all: () => readonly ["users"];
readonly lists: () => readonly ["users", "list"];
readonly list: (filters?: string) => readonly ["users", "list", {
readonly filters: string | undefined;
}];
readonly details: () => readonly ["users", "detail"];
readonly detail: (id: string) => readonly ["users", "detail", string];
readonly byHandle: (handle: string) => readonly ["users", "handle", string];
readonly search: (pattern: string) => readonly ["users", "search", string];
readonly settings: (userId: string) => readonly ["users", "detail", string, "settings"];
readonly onboarding: (userId: string) => readonly ["users", "detail", string, "onboarding"];
readonly surveys: (userId: string) => readonly ["users", "detail", string, "surveys"];
readonly credits: (userId: string) => readonly ["users", "detail", string, "credits"];
};
readonly organizations: {
readonly all: () => readonly ["organizations"];
readonly lists: () => readonly ["organizations", "list"];
readonly details: () => readonly ["organizations", "detail"];
readonly detail: (id: string) => readonly ["organizations", "detail", string];
readonly byHandle: (handle: string) => readonly ["organizations", "handle", string];
readonly userOrgs: () => readonly ["organizations", "user"];
readonly members: (orgId: string) => readonly ["organizations", "detail", string, "members"];
};
readonly teams: {
readonly all: () => readonly ["teams"];
readonly details: () => readonly ["teams", "detail"];
readonly detail: (id: string) => readonly ["teams", "detail", string];
readonly byHandle: (handle: string) => readonly ["teams", "handle", string];
readonly byOrganization: (orgId: string) => readonly ["teams", "organization", string];
readonly members: (teamId: string) => readonly ["teams", "detail", string, "members"];
};
readonly spaces: {
readonly all: () => readonly ["spaces"];
readonly details: () => readonly ["spaces", "detail"];
readonly detail: (id: string) => readonly ["spaces", "detail", string];
readonly byHandle: (handle: string) => readonly ["spaces", "handle", string];
readonly byOrganization: (orgId: string) => readonly ["spaces", "organization", string];
readonly orgSpaceByHandle: (orgId: string, handle: string) => readonly ["spaces", "organization", string, "handle", string];
readonly byOrganizationAndHandle: (orgHandle: string, spaceHandle: string) => readonly ["spaces", "organization", string, "space", string];
readonly userSpaces: () => readonly ["spaces", "user"];
readonly items: (spaceId: string) => readonly ["spaces", "detail", string, "items"];
readonly members: (spaceId: string) => readonly ["spaces", "detail", string, "members"];
};
readonly notebooks: {
readonly all: () => readonly ["notebooks"];
readonly details: () => readonly ["notebooks", "detail"];
readonly detail: (id: string) => readonly ["notebooks", "detail", string];
readonly bySpace: (spaceId: string) => readonly ["notebooks", "space", string];
readonly model: (notebookId: string) => readonly ["notebooks", "detail", string, "model"];
};
readonly documents: {
readonly all: () => readonly ["documents"];
readonly details: () => readonly ["documents", "detail"];
readonly detail: (id: string) => readonly ["documents", "detail", string];
readonly bySpace: (spaceId: string) => readonly ["documents", "space", string];
readonly model: (documentId: string) => readonly ["documents", "detail", string, "model"];
};
readonly cells: {
readonly all: () => readonly ["cells"];
readonly details: () => readonly ["cells", "detail"];
readonly detail: (id: string) => readonly ["cells", "detail", string];
readonly bySpace: (spaceId: string) => readonly ["cells", "space", string];
};
readonly datasets: {
readonly all: () => readonly ["datasets"];
readonly details: () => readonly ["datasets", "detail"];
readonly detail: (id: string) => readonly ["datasets", "detail", string];
readonly bySpace: (spaceId: string) => readonly ["datasets", "space", string];
};
readonly lessons: {
readonly all: () => readonly ["lessons"];
readonly details: () => readonly ["lessons", "detail"];
readonly detail: (id: string) => readonly ["lessons", "detail", string];
readonly bySpace: (spaceId: string) => readonly ["lessons", "space", string];
};
readonly exercises: {
readonly all: () => readonly ["exercises"];
readonly details: () => readonly ["exercises", "detail"];
readonly detail: (id: string) => readonly ["exercises", "detail", string];
readonly bySpace: (spaceId: string) => readonly ["exercises", "space", string];
};
readonly assignments: {
readonly all: () => readonly ["assignments"];
readonly details: () => readonly ["assignments", "detail"];
readonly detail: (id: string) => readonly ["assignments", "detail", string];
readonly bySpace: (spaceId: string) => readonly ["assignments", "space", string];
readonly forStudent: (assignmentId: string, courseId: string, studentId: string) => readonly ["assignments", "detail", string, "course", string, "student", string];
readonly studentVersion: (assignmentId: string) => readonly ["assignments", "detail", string, "studentVersion"];
};
readonly environments: {
readonly all: () => readonly ["environments"];
readonly details: () => readonly ["environments", "detail"];
readonly detail: (id: string) => readonly ["environments", "detail", string];
readonly bySpace: (spaceId: string) => readonly ["environments", "space", string];
};
readonly pages: {
readonly all: () => readonly ["pages"];
readonly details: () => readonly ["pages", "detail"];
readonly detail: (id: string) => readonly ["pages", "detail", string];
};
readonly datasources: {
readonly all: () => readonly ["datasources"];
readonly details: () => readonly ["datasources", "detail"];
readonly detail: (id: string) => readonly ["datasources", "detail", string];
};
readonly secrets: {
readonly all: () => readonly ["secrets"];
readonly details: () => readonly ["secrets", "detail"];
readonly detail: (id: string) => readonly ["secrets", "detail", string];
};
readonly tokens: {
readonly all: () => readonly ["tokens"];
readonly details: () => readonly ["tokens", "detail"];
readonly detail: (id: string) => readonly ["tokens", "detail", string];
};
readonly contacts: {
readonly all: () => readonly ["contacts"];
readonly lists: () => readonly ["contacts", "list"];
readonly details: () => readonly ["contacts", "detail"];
readonly detail: (id: string) => readonly ["contacts", "detail", string];
readonly byHandle: (handle: string) => readonly ["contacts", "handle", string];
readonly search: (query: string) => readonly ["contacts", "search", string];
};
readonly invites: {
readonly all: () => readonly ["invites"];
readonly byToken: (token: string) => readonly ["invites", "token", string];
readonly byAccount: (accountId: string) => readonly ["invites", "account", string];
};
readonly courses: {
readonly all: () => readonly ["courses"];
readonly details: () => readonly ["courses", "detail"];
readonly detail: (id: string) => readonly ["courses", "detail", string];
readonly public: () => readonly ["courses", "public"];
readonly instructor: (instructorId: string) => readonly ["courses", "instructor", string];
readonly enrollments: () => readonly ["courses", "enrollments", "me"];
readonly students: (courseId: string) => readonly ["courses", "detail", string, "students"];
readonly student: (courseId: string, studentId: string) => readonly ["courses", "detail", string, "student", string];
};
readonly schools: {
readonly all: () => readonly ["schools"];
};
readonly inbounds: {
readonly all: () => readonly ["inbounds"];
readonly detail: (id: string) => readonly ["inbounds", string];
readonly byHandle: (handle: string) => readonly ["inbounds", "handle", string];
};
readonly outbounds: {
readonly all: () => readonly ["outbounds"];
readonly detail: (id: string) => readonly ["outbounds", string];
};
readonly items: {
readonly all: () => readonly ["items"];
readonly public: () => readonly ["items", "public"];
readonly bySpace: (spaceId: string) => readonly ["items", "space", string];
readonly search: (opts: ISearchOpts) => readonly ["items", "search", ISearchOpts];
};
readonly layout: {
readonly byAccount: (accountHandle: string, spaceHandle?: string) => readonly ["layout", string, string] | readonly ["layout", string];
};
readonly usages: {
readonly user: () => readonly ["usages", "user"];
readonly userById: (userId: string) => readonly ["usages", "user", string];
readonly platform: () => readonly ["usages", "platform"];
};
readonly prices: {
readonly stripe: () => readonly ["prices", "stripe"];
};
readonly growth: {
readonly kpi: () => readonly ["growth", "kpi"];
};
readonly oauth2: {
readonly authorizationUrl: (queryArgs: Record<string, string>) => readonly ["oauth2", "authz", "url", Record<string, string>];
readonly authorizationLinkUrl: (queryArgs: Record<string, string>) => readonly ["oauth2", "authz", "url", "link", Record<string, string>];
};
};
/**
* TanStack Query-based cache hook for Datalayer API
*
* This hook provides React Query-based data fetching and mutations for all
* Datalayer entities. Unlike the original useCache hook, this returns hook
* factories that components can use directly.
*
* @param options - Configuration options
* @param options.loginRoute - Route to redirect to on authentication failure (default: '/login')
*
* @returns Object containing all query and mutation hook factories
*/
export declare const useCache: ({ loginRoute }?: CacheProps) => {
useLogin: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
handle: string;
password: string;
}, unknown>;
useLogout: () => import("@tanstack/react-query").UseMutationResult<any, Error, void, unknown>;
useMe: (token?: string) => import("@tanstack/react-query").UseQueryResult<IUser | null | undefined, Error>;
useUpdateMe: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
email: string;
firstName: string;
lastName: string;
}, unknown>;
useWhoami: () => import("@tanstack/react-query").UseQueryResult<any, Error>;
useChangePassword: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
handle: string;
password: string;
passwordConfirm: string;
}, unknown>;
useRequestEmailUpdate: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useConfirmEmailUpdate: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRequestJoin: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
handle: string;
email: string;
firstName: string;
lastName: string;
password: string;
passwordConfirm: string;
}, unknown>;
useRequestJoinToken: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
handle: string;
email: string;
firstName: string;
lastName: string;
password: string;
passwordConfirm: string;
}, unknown>;
useJoinWithInvite: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
formValues: any;
token: string;
}, unknown>;
useConfirmJoinWithToken: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userHandle: string;
token: string;
}, unknown>;
useCreateTokenForPasswordChange: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
handle: string;
password: string;
passwordConfirm: string;
}, unknown>;
useConfirmPasswordWithToken: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userHandle: string;
token: string;
}, unknown>;
useOAuth2AuthorizationURL: () => import("@tanstack/react-query").UseMutationResult<string, Error, Record<string, string>, unknown>;
useOAuth2AuthorizationLinkURL: () => import("@tanstack/react-query").UseMutationResult<string, Error, Record<string, string>, unknown>;
useGetGitHubProfile: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useGetLinkedinProfile: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
usePostLinkedinShare: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
linkedinUserUrn: string;
postText: string;
accessToken: string;
}, unknown>;
usePostLinkedinShareWithUpload: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
linkedinUserUrn: string;
postText: string;
uploadObject: string;
accessToken: string;
}, unknown>;
useRegisterToWaitingList: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
firstName: string;
lastName: string;
email: string;
affiliation?: string;
}, unknown>;
useProxyGET: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
url: string;
token: string;
}, unknown>;
useProxyPOST: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
url: string;
body: object;
token: string;
}, unknown>;
useProxyPUT: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
url: string;
body: object;
token: string;
}, unknown>;
useUser: (userId: string) => import("@tanstack/react-query").UseQueryResult<IUser | undefined, Error>;
useUserByHandle: (handle: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useSearchUsers: (namingPattern: string) => import("@tanstack/react-query").UseQueryResult<IUser[], Error>;
useUpdateUserOnboarding: () => import("@tanstack/react-query").UseMutationResult<any, Error, IUserOnboarding, unknown>;
useUpdateUserSettings: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userId: string;
settings: IUserSettings;
}, unknown>;
useRefreshUser: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useUserCredits: (userId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useUpdateUserCredits: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userId: string;
credits: number;
brand?: string;
}, unknown>;
useAssignRoleToUser: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userId: string;
roleName: string;
}, unknown>;
useUnassignRoleFromUser: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userId: string;
roleName: string;
}, unknown>;
useUpdateUserCreditsQuota: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userId: string;
quota?: number;
}, unknown>;
useUsages: (options?: Omit<UseQueryOptions<unknown[]>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown[], Error>;
useUsagesForUser: (userId: string, options?: Omit<UseQueryOptions<unknown[]>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown[], Error>;
usePlatformUsages: (options?: Omit<UseQueryOptions<unknown[]>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown[], Error>;
useOrganization: (organizationId: string) => import("@tanstack/react-query").UseQueryResult<IOrganization, Error>;
useOrganizationByHandle: (handle: string) => import("@tanstack/react-query").UseQueryResult<IOrganization | null, Error>;
useUserOrganizations: () => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreateOrganization: () => import("@tanstack/react-query").UseMutationResult<any, Error, Partial<IOrganization>, unknown>;
useUpdateOrganization: () => import("@tanstack/react-query").UseMutationResult<any, Error, Partial<IAnyOrganization>, unknown>;
useAddMemberToOrganization: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
organizationId: string;
userId: string;
}, unknown>;
useRemoveMemberFromOrganization: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
organizationId: string;
userId: string;
}, unknown>;
useAddRoleToOrganizationMember: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
organizationId: string;
userId: string;
roleName: string;
}, unknown>;
useRemoveRoleFromOrganizationMember: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
organizationId: string;
userId: string;
roleName: string;
}, unknown>;
useRefreshOrganization: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRefreshUserOrganizations: () => import("@tanstack/react-query").UseMutationResult<any, Error, void, unknown>;
useUserOrganizationById: (organizationId: string) => any;
useClearCachedOrganizations: (options?: UseMutationOptions<void, Error, void>) => import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
useTeam: (teamId: string, organizationId: string) => import("@tanstack/react-query").UseQueryResult<ITeam, Error>;
useTeamByHandle: (handle: string) => import("@tanstack/react-query").UseQueryResult<ITeam | null, Error>;
useTeamsByOrganization: (organizationId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreateTeam: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
team: Partial<ITeam>;
organization: IAnyOrganization;
}, unknown>;
useUpdateTeam: () => import("@tanstack/react-query").UseMutationResult<any, Error, Partial<ITeam>, unknown>;
useAddMemberToTeam: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
teamId: string;
userId: string;
}, unknown>;
useRemoveMemberFromTeam: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
teamId: string;
userId: string;
}, unknown>;
useAddRoleToTeamMember: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
teamId: string;
userId: string;
roleName: string;
}, unknown>;
useRemoveRoleFromTeamMember: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
teamId: string;
userId: string;
roleName: string;
}, unknown>;
useRefreshTeam: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
teamId: string;
organizationId: string;
}, unknown>;
useRefreshTeams: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useClearCachedTeams: (options?: UseMutationOptions<void, Error, void>) => import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
useSchools: () => import("@tanstack/react-query").UseQueryResult<ISchool[], Error>;
useRefreshSchools: (options?: UseMutationOptions<unknown, Error, void>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, void, unknown>;
useSpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<IAnySpace, Error>;
useOrganizationSpace: (organizationId: string, spaceId: string) => import("@tanstack/react-query").UseQueryResult<IAnySpace, Error>;
useOrganizationSpaceByHandle: (organizationId: string, handle: string) => import("@tanstack/react-query").UseQueryResult<IAnySpace | null, Error>;
useOrganizationSpaces: (organizationId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useUserSpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<IAnySpace | null, Error>;
useUserSpaceByHandle: (handle: string) => import("@tanstack/react-query").UseQueryResult<{} | null, Error>;
useUserSpaces: () => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreateSpace: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
space: Partial<IAnySpace>;
organization?: IAnyOrganization;
}, unknown>;
useUpdateSpace: () => import("@tanstack/react-query").UseMutationResult<any, Error, Partial<IAnySpace>, unknown>;
useUpdateOrganizationSpace: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
organizationId: string;
spaceId: string;
updates: Partial<IAnySpace>;
}, unknown>;
useAddMemberToOrganizationSpace: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
organizationId: string;
spaceId: string;
accountId: string;
}, unknown>;
useRemoveMemberFromOrganizationSpace: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
organizationId: string;
spaceId: string;
accountId: string;
}, unknown>;
useMakeSpacePublic: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useMakeSpacePrivate: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRefreshOrganizationSpace: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
organizationId: string;
spaceId: string;
}, unknown>;
useRefreshOrganizationSpaces: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRefreshUserSpaces: () => import("@tanstack/react-query").UseMutationResult<any, Error, void, unknown>;
useRefreshUserSpace: (options?: UseMutationOptions<unknown, Error, {
userId: string;
spaceId: string;
}>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, {
userId: string;
spaceId: string;
}, unknown>;
useRefreshLayout: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
accountHandle: string;
spaceHandle?: string;
}, unknown>;
useExportSpace: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useCourse: (courseId: string) => import("@tanstack/react-query").UseQueryResult<ICourse | undefined, Error>;
useUpdateCourse: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
courseId: string;
name: string;
description: string;
}, unknown>;
usePublicCourses: () => import("@tanstack/react-query").UseQueryResult<any, Error>;
useInstructorCourses: (userId?: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCourseEnrollments: () => import("@tanstack/react-query").UseQueryResult<any, Error>;
useEnrollStudentToCourse: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
courseId: string;
studentId: string;
}, unknown>;
useRemoveStudentFromCourse: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
courseId: string;
studentId: string;
}, unknown>;
useStudent: (courseId: string, studentId: string, options?: Omit<UseQueryOptions<unknown>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown, Error>;
useConfirmCourseItemCompletion: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
courseId: string;
itemType: string;
itemId: string;
completed: boolean;
}, unknown>;
useSetCourseItems: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
courseId: string;
itemIds: string[];
}, unknown>;
useRefreshCourse: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshPublicCourses: (options?: UseMutationOptions<unknown, Error, void>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, void, unknown>;
useRefreshInstructorCourses: (options?: UseMutationOptions<unknown, Error, void>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, void, unknown>;
useRefreshCoursesEnrollments: (options?: UseMutationOptions<unknown, Error, void>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, void, unknown>;
useRefreshStudent: (options?: UseMutationOptions<unknown, Error, {
courseId: string;
studentHandle: string;
}>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, {
courseId: string;
studentHandle: string;
}, unknown>;
useNotebook: (notebookId: string) => import("@tanstack/react-query").UseQueryResult<INotebook, Error>;
useNotebooksBySpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreateNotebook: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
spaceId: string;
name: string;
description?: string;
notebookType?: string;
file?: File;
}, unknown>;
useUpdateNotebook: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
id: string;
name: string;
description: string;
}, unknown>;
useUpdateNotebookModel: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
notebookId: string;
nbformat: unknown;
}, unknown>;
useCloneNotebook: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRefreshNotebook: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshSpaceNotebooks: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useDocument: (documentId: string) => import("@tanstack/react-query").UseQueryResult<IDocument, Error>;
useDocumentsBySpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreateDocument: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
spaceId: string;
name: string;
description?: string;
documentType?: string;
file?: File;
}, unknown>;
useUpdateDocument: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
id: string;
name: string;
description: string;
}, unknown>;
useUpdateDocumentModel: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
id: string;
model: unknown;
}, unknown>;
useCloneDocument: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRefreshDocument: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshSpaceDocuments: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useCell: (cellId: string) => import("@tanstack/react-query").UseQueryResult<ICell | undefined, Error>;
useCellsBySpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useUpdateCell: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
id: string;
name: string;
description: string;
source: string;
outputshotUrl?: string;
outputshotData?: string;
spaceId: string;
}, unknown>;
useCloneCell: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRefreshCell: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshSpaceCells: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useDataset: (datasetId: string) => import("@tanstack/react-query").UseQueryResult<IDataset | undefined, Error>;
useDatasetsBySpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useUpdateDataset: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
id: string;
name: string;
description: string;
spaceId?: string;
}, unknown>;
useRefreshDataset: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshSpaceDatasets: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useEnvironment: (environmentId: string) => import("@tanstack/react-query").UseQueryResult<IEnvironment | undefined, Error>;
useEnvironmentsBySpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useRefreshEnvironment: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshSpaceEnvironments: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useLesson: (lessonId: string) => import("@tanstack/react-query").UseQueryResult<ILesson | undefined, Error>;
useLessonsBySpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCloneLesson: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRefreshLesson: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshSpaceLessons: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useExercise: (exerciseId: string) => import("@tanstack/react-query").UseQueryResult<IExercise | undefined, Error>;
useExercisesBySpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useUpdateExercise: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
id: string;
name: string;
description: string;
help?: string;
codePre?: string;
codeSolution?: string;
codeQuestion?: string;
codeTest?: string;
}, unknown>;
useCloneExercise: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useUpdateExercisePoints: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
exerciseId: string;
codeStudent: string;
points: number;
}, unknown>;
useRefreshExercise: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshSpaceExercises: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useAssignment: (assignmentId: string) => import("@tanstack/react-query").UseQueryResult<IAssignment | undefined, Error>;
useAssignmentsBySpace: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCloneAssignment: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useAssignmentForStudent: (assignmentId: string, courseId: string, userId: string, options?: Omit<UseQueryOptions<unknown>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown, Error>;
useAssignmentStudentVersion: (assignmentId: string, options?: Omit<UseQueryOptions<unknown>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown, Error>;
useGradeAssignmentForStudent: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
assignmentId: string;
courseId: string;
userId: string;
model: unknown;
}, unknown>;
useResetAssignmentForStudent: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
assignmentId: string;
courseId: string;
userId: string;
}, unknown>;
useRefreshAssignment: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshAssignmentForStudent: (options?: UseMutationOptions<unknown, Error, {
courseId: string;
userId: string;
assignmentId: string;
}>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, {
courseId: string;
userId: string;
assignmentId: string;
}, unknown>;
useRefreshSpaceAssignments: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useDeleteItem: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useSpaceItems: (spaceId: string) => import("@tanstack/react-query").UseQueryResult<any[], Error>;
useMakeItemPublic: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useMakeItemPrivate: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useSearchPublicItems: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
q?: string;
types?: string[];
max?: number;
}, unknown>;
usePublicItems: (options?: UseQueryOptions<unknown, Error>) => import("@tanstack/react-query").UseQueryResult<unknown, Error>;
useRefreshPublicItems: (options?: UseMutationOptions<unknown, Error, void>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, void, unknown>;
useRefreshSpaceItems: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useClearCachedPublicItems: (options?: UseMutationOptions<void, Error, void>) => import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
useClearCachedItems: (options?: UseMutationOptions<void, Error, void>) => import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
usePage: (pageId: string) => import("@tanstack/react-query").UseQueryResult<IPage | undefined, Error>;
usePages: () => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreatePage: () => import("@tanstack/react-query").UseMutationResult<any, Error, Omit<IPage, "id">, unknown>;
useUpdatePage: () => import("@tanstack/react-query").UseMutationResult<any, Error, Pick<IPage, "id" | "name" | "tags" | "description">, unknown>;
useDeletePage: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useDatasource: (datasourceId: string) => import("@tanstack/react-query").UseQueryResult<IDatasource | null | undefined, Error>;
useDatasources: () => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreateDatasource: () => import("@tanstack/react-query").UseMutationResult<any, Error, Omit<IDatasource, "id">, unknown>;
useUpdateDatasource: () => import("@tanstack/react-query").UseMutationResult<any, Error, IDatasource, unknown>;
useSecret: (secretId: string, options?: {
enabled?: boolean;
refetchOnMount?: boolean;
}) => import("@tanstack/react-query").UseQueryResult<ISecret | null | undefined, Error>;
useSecrets: () => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreateSecret: () => import("@tanstack/react-query").UseMutationResult<any, Error, Omit<ISecret, "id">, unknown>;
useUpdateSecret: () => import("@tanstack/react-query").UseMutationResult<any, Error, ISecret, unknown>;
useDeleteSecret: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useToken: (tokenId: string) => import("@tanstack/react-query").UseQueryResult<IIAMToken | null | undefined, Error>;
useTokens: () => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreateToken: () => import("@tanstack/react-query").UseMutationResult<any, Error, Omit<IIAMToken, "id" | "value">, unknown>;
useUpdateToken: () => import("@tanstack/react-query").UseMutationResult<any, Error, IIAMToken, unknown>;
useInvite: (token: string) => import("@tanstack/react-query").UseQueryResult<import("../models").IInvite | undefined, Error>;
useInvitesByUser: (accountId: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
usePutInvite: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRequestInvite: (options?: UseMutationOptions<unknown, Error, {
firstName: string;
lastName: string;
email: string;
socialUrl: string;
}>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, {
firstName: string;
lastName: string;
email: string;
socialUrl: string;
}, unknown>;
useSendInvite: (options?: UseMutationOptions<unknown, Error, {
email: string;
firstName: string;
lastName: string;
message: string;
brand: string;
}>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, {
email: string;
firstName: string;
lastName: string;
message: string;
brand: string;
}, unknown>;
useRefreshInvite: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useRefreshInvites: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useClearCachedInvites: (options?: UseMutationOptions<void, Error, void>) => import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
useContact: (contactId: string, options?: {
enabled?: boolean;
}) => import("@tanstack/react-query").UseQueryResult<IContact | undefined, Error>;
useContactByHandle: (handle: string) => import("@tanstack/react-query").UseQueryResult<IContact | null | undefined, Error>;
useSearchContacts: (query: string) => import("@tanstack/react-query").UseQueryResult<any, Error>;
useCreateContact: () => import("@tanstack/react-query").UseMutationResult<any, Error, IContact, unknown>;
useUpdateContact: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
contactId: string;
contact: IContact;
}, unknown>;
useDeleteContact: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useAssignTagToContact: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
contactId: string;
tagName: string;
}, unknown>;
useUnassignTagFromContact: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
contactId: string;
tagName: string;
}, unknown>;
useSendInviteToContact: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
contactId: string;
message: string;
}, unknown>;
useEnrichContactEmail: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
contactId: string;
useDomain: boolean;
}, unknown>;
useEnrichContactLinkedin: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useSendLinkedinConnectionRequest: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
contactId: string;
message: string;
}, unknown>;
useLinkUserWithContact: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userId: string;
contactId: string;
}, unknown>;
useUnlinkUserFromContact: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userId: string;
contactId: string;
}, unknown>;
useRefreshContact: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useInbounds: (options?: Omit<UseQueryOptions<unknown[]>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown[], Error>;
useInbound: (id: string, options?: UseQueryOptions<unknown, Error>) => import("@tanstack/react-query").UseQueryResult<unknown, Error>;
useInboundByHandle: (handle: string, options?: UseQueryOptions<unknown, Error>) => import("@tanstack/react-query").UseQueryResult<unknown, Error>;
useRefreshInbound: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useOutbound: (outboundId: string, options?: Omit<UseQueryOptions<unknown>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown, Error>;
useOutbounds: (options?: Omit<UseQueryOptions<unknown[]>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown[], Error>;
useDraftBulkEmailsOutbounds: () => import("@tanstack/react-query").UseMutationResult<any, Error, unknown, unknown>;
useTryBulkEmailsOutbounds: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useLaunchBulkEmailsOutbounds: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useSendOutboundEmailToUser: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userId: string;
recipient: string;
subject: string;
content: string;
}, unknown>;
useDeleteOutbound: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useSubscribeUserToOutbounds: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useUnsubscribeUserFromOutbounds: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useUnsubscribeContactFromOutbounds: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useUnsubscribeInviteeFromOutbounds: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
useRefreshOutbound: (options?: UseMutationOptions<unknown, Error, string>) => import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
useEnableUserMFA: () => import("@tanstack/react-query").UseMutationResult<any, Error, void, unknown>;
useDisableUserMFA: () => import("@tanstack/react-query").UseMutationResult<any, Error, void, unknown>;
useValidateUserMFACode: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
userUid: string;
code: string;
}, unknown>;
useCreateCheckoutSession: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
product: any;
location: Location;
}, unknown>;
useBurnCredit: () => import("@tanstack/react-query").UseMutationResult<any, Error, number, unknown>;
useStripePrices: (options?: Omit<UseQueryOptions<unknown[]>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown[], Error>;
useRequestPlatformSupport: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
subject: string;
message: string;
email: string;
brand: string;
}, unknown>;
useRequestPlatformSupport2: () => import("@tanstack/react-query").UseMutationResult<any, Error, {
accountHandle: string;
firstName: string;
lastName: string;
email: string;
message: string;
}, unknown>;
useUserSurveys: (userId: string, options?: Omit<UseQueryOptions<unknown>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown, Error>;
useGrowthKPI: (options?: Omit<UseQueryOptions<unknown>, "queryKey" | "queryFn">) => import("@tanstack/react-query").UseQueryResult<unknown, Error>;
queryKeys: {
readonly auth: {
readonly me: () => readonly ["auth", "me"];
readonly whoami: () => readonly ["auth", "whoami"];
};
readonly users: {
readonly all: () => readonly ["users"];
readonly lists: () => readonly ["users", "list"];
readonly list: (filters?: string) => readonly ["users", "list", {
readonly filters: string | undefined;
}];
readonly details: () => readonly ["users", "detail"];
readonly detail: (id: string) => readonly ["users", "detail", string];
readonly byHandle: (handle: string) => readonly ["users", "handle", string];
readonly search: (pattern: string) => readonly ["users", "search", string];
readonly settings: (userId: string) => readonly ["users", "detail", string, "settings"];
readonly onboarding: (userId: string) => readonly ["users", "detail", string, "onboarding"];
readonly surveys: (userId: string) => readonly ["users", "detail", string, "surveys"];
readonly credits: (userId: string) => readonly ["users", "detail", string, "credits"];
};
readonly organizations: {
readonly all: () => readonly ["organizations"];
readonly lists: () => readonly ["organizations", "list"];
readonly details: () => readonly ["organizations", "detail"];
readonly detail: (id: string) => readonly ["organizations", "detail", string];
readonly byHandle: (handle: string) => readonly ["organizations", "handle", string];
readonly userOrgs: () => readonly ["organizations", "user"];
readonly members: (orgId: string) => readonly ["organizations", "detail", string, "members"];
};
readonly teams: {
readonly all: () => readonly ["teams"];
readonly details: () => readonly ["teams", "detail"];
readonly detail: (id: string) => readonly ["teams", "detail", string];
readonly byHandle: (handle: string) => readonly ["teams", "handle", string];
readonly byOrganization: (orgId: string) => readonly ["teams", "organization", string];
readonly members: (teamId: string) => readonly ["teams", "detail", string, "members"];
};
readonly spaces: {
readonly all: () => readonly ["spaces"];
readonly details: () => readonly ["spaces", "detail"];
readonly detail: (id: string) => readonly ["spaces", "detail", string];
readonly byHandle: (handle: string) => readonly