/**
 * 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';
export type CacheProps = {
    loginRoute?: string;
};
export 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>;
    useCreateUrlForPasswordChange: () => 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<{
        success: boolean;
        autorization_url: string;
    }, Error, Record<string, string>, unknown>;
    useGetGitHubProfile: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
    useGetGoogleProfile: () => 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> & Record<string, unknown>, unknown>;
    useDeleteSpace: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, 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>;
    useSpaceDefaultItems: (spaceId: string | undefined) => import("@tanstack/react-query").UseQueryResult<{
        defaultNotebookUid: string | null;
        defaultDocumentUid: string | null;
    }, 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 | "always";
        staleTime?: number;
        gcTime?: number;
    }) => 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>;
    useDeleteToken: () => import("@tanstack/react-query").UseMutationResult<any, Error, string, unknown>;
    useInvite: (token: string) => import("@tanstack/react-query").UseQueryResult<import("..").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 ["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>];
        };
    };
    notebookUploadLoading: boolean;
    notebookUploadProgress: number;
    resetNotebookUpload: () => void;
    documentUploadLoading: boolean;
    documentUploadProgress: number;
    resetDocumentUpload: () => void;
};
export default useCache;
