import { OverrideProperties } from 'type-fest';
import { MaybeAsync, StringEnumValues } from '../../core/index.js';
import type { GetServerRole } from './core/operations.js';
import type { GetProject, GetProjectModelCount, GetProjectRole, GetProjectRoleCounts } from './projects/operations.js';
import type { GetAdminOverrideEnabled, GetEnv, GetUserWorkspaces, GetWorkspace, GetWorkspaceLimits, GetWorkspaceModelCount, GetWorkspacePlan, GetWorkspaceProjectCount, GetWorkspaceRole, GetWorkspaceSeat, GetWorkspaceSsoProvider, GetWorkspaceSsoSession } from './workspaces/operations.js';
import { GetComment } from './comments/operations.js';
import { GetModel } from './models/operations.js';
import { GetVersion } from './versions/operations.js';
import { GetAutomateFunction } from './automate/operations.js';
import { GetSavedView, GetSavedViewGroup } from './savedViews/operations.js';
import { GetDashboard } from './dashboards/operations.js';
type PromiseAll<T> = {
    [K in keyof T]: T[K] extends (...args: infer Args) => MaybeAsync<infer Return> ? (...args: Args) => Promise<Return> : never;
};
type AuthContextLoaderMappingDefinition<Mapping extends {
    [Key in keyof Mapping]: Key extends AuthCheckContextLoaderKeys ? Mapping[Key] : never;
}> = PromiseAll<OverrideProperties<{
    [key in AuthCheckContextLoaderKeys]: unknown;
}, Mapping>>;
/**
 * All loaders must be listed here for app startup validation to work properly
 */
export declare const AuthCheckContextLoaderKeys: Readonly<{
    getEnv: "getEnv";
    getAutomateFunction: "getAutomateFunction";
    getDashboard: "getDashboard";
    getProject: "getProject";
    getProjectRoleCounts: "getProjectRoleCounts";
    getProjectRole: "getProjectRole";
    getProjectModelCount: "getProjectModelCount";
    getServerRole: "getServerRole";
    getWorkspace: "getWorkspace";
    getUsersCurrentAndEligibleToBecomeAMemberWorkspaces: "getUsersCurrentAndEligibleToBecomeAMemberWorkspaces";
    getWorkspaceRole: "getWorkspaceRole";
    getWorkspaceSeat: "getWorkspaceSeat";
    getWorkspaceModelCount: "getWorkspaceModelCount";
    getWorkspaceProjectCount: "getWorkspaceProjectCount";
    getWorkspacePlan: "getWorkspacePlan";
    getWorkspaceLimits: "getWorkspaceLimits";
    getWorkspaceSsoProvider: "getWorkspaceSsoProvider";
    getWorkspaceSsoSession: "getWorkspaceSsoSession";
    getAdminOverrideEnabled: "getAdminOverrideEnabled";
    getComment: "getComment";
    getModel: "getModel";
    getVersion: "getVersion";
    getSavedView: "getSavedView";
    getSavedViewGroup: "getSavedViewGroup";
}>;
export declare const Loaders: Readonly<{
    getEnv: "getEnv";
    getAutomateFunction: "getAutomateFunction";
    getDashboard: "getDashboard";
    getProject: "getProject";
    getProjectRoleCounts: "getProjectRoleCounts";
    getProjectRole: "getProjectRole";
    getProjectModelCount: "getProjectModelCount";
    getServerRole: "getServerRole";
    getWorkspace: "getWorkspace";
    getUsersCurrentAndEligibleToBecomeAMemberWorkspaces: "getUsersCurrentAndEligibleToBecomeAMemberWorkspaces";
    getWorkspaceRole: "getWorkspaceRole";
    getWorkspaceSeat: "getWorkspaceSeat";
    getWorkspaceModelCount: "getWorkspaceModelCount";
    getWorkspaceProjectCount: "getWorkspaceProjectCount";
    getWorkspacePlan: "getWorkspacePlan";
    getWorkspaceLimits: "getWorkspaceLimits";
    getWorkspaceSsoProvider: "getWorkspaceSsoProvider";
    getWorkspaceSsoSession: "getWorkspaceSsoSession";
    getAdminOverrideEnabled: "getAdminOverrideEnabled";
    getComment: "getComment";
    getModel: "getModel";
    getVersion: "getVersion";
    getSavedView: "getSavedView";
    getSavedViewGroup: "getSavedViewGroup";
}>;
export type AuthCheckContextLoaderKeys = StringEnumValues<typeof AuthCheckContextLoaderKeys>;
export type AllAuthCheckContextLoaders = AuthContextLoaderMappingDefinition<{
    getEnv: GetEnv;
    getAdminOverrideEnabled: GetAdminOverrideEnabled;
    getAutomateFunction: GetAutomateFunction;
    getDashboard: GetDashboard;
    getProject: GetProject;
    getProjectRole: GetProjectRole;
    getProjectRoleCounts: GetProjectRoleCounts;
    getProjectModelCount: GetProjectModelCount;
    getServerRole: GetServerRole;
    getWorkspace: GetWorkspace;
    getUsersCurrentAndEligibleToBecomeAMemberWorkspaces: GetUserWorkspaces;
    getWorkspaceRole: GetWorkspaceRole;
    getWorkspaceLimits: GetWorkspaceLimits;
    getWorkspacePlan: GetWorkspacePlan;
    getWorkspaceSeat: GetWorkspaceSeat;
    getWorkspaceProjectCount: GetWorkspaceProjectCount;
    getWorkspaceModelCount: GetWorkspaceModelCount;
    getWorkspaceSsoProvider: GetWorkspaceSsoProvider;
    getWorkspaceSsoSession: GetWorkspaceSsoSession;
    getComment: GetComment;
    getModel: GetModel;
    getVersion: GetVersion;
    getSavedView: GetSavedView;
    getSavedViewGroup: GetSavedViewGroup;
}>;
export type AuthCheckContextLoaders<LoaderKeys extends AuthCheckContextLoaderKeys = AuthCheckContextLoaderKeys> = Pick<AllAuthCheckContextLoaders, LoaderKeys>;
export type AuthCheckContext<LoaderKeys extends AuthCheckContextLoaderKeys> = {
    loaders: AuthCheckContextLoaders<LoaderKeys>;
};
export {};
//# sourceMappingURL=loaders.d.ts.map