import { ValueOf } from 'type-fest';
import { WorkspaceLimits } from '../../workspaces/helpers/limits.js';
export type AuthError<ErrorCode extends string = string, Payload = undefined> = {
    readonly code: ErrorCode;
    readonly message: string;
    readonly payload: Payload;
} & Error;
export declare const defineAuthError: <ErrorCode extends string, Payload = undefined>(definition: {
    code: ErrorCode;
    message: string;
}) => {
    new (...args: Payload extends undefined ? [params?: {
        message?: string;
    } | string] : [params: {
        payload: Payload;
        message?: string;
    } | string]): AuthError<ErrorCode, Payload>;
    code: ErrorCode;
};
export declare const isAuthPolicyError: (err: unknown) => err is AuthError;
export declare const ProjectNotFoundError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"ProjectNotFound", undefined>;
    code: "ProjectNotFound";
};
export declare const ProjectNoAccessError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"ProjectNoAccess", undefined>;
    code: "ProjectNoAccess";
};
export declare const PersonalProjectsLimitedError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"PersonalProjectsLimited", undefined>;
    code: "PersonalProjectsLimited";
};
export declare const ProjectNotEnoughPermissionsError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"ProjectNotEnoughPermissions", undefined>;
    code: "ProjectNotEnoughPermissions";
};
export declare const ProjectLastOwnerError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"ProjectLastOwner", undefined>;
    code: "ProjectLastOwner";
};
export declare const WorkspacesNotEnabledError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"WorkspacesNotEnabled", undefined>;
    code: "WorkspacesNotEnabled";
};
export declare const WorkspaceNoAccessError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"WorkspaceNoAccess", undefined>;
    code: "WorkspaceNoAccess";
};
export declare const WorkspaceNotEnoughPermissionsError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"WorkspaceNotEnoughPermissions", undefined>;
    code: "WorkspaceNotEnoughPermissions";
};
export declare const EligibleForExclusiveWorkspaceError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"UserEligibleForExclusiveWorkspace", undefined>;
    code: "UserEligibleForExclusiveWorkspace";
};
export declare const WorkspaceReadOnlyError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"WorkspaceReadOnly", undefined>;
    code: "WorkspaceReadOnly";
};
export declare const WorkspaceLimitsReachedError: {
    new (params: string | {
        payload: {
            limit: keyof WorkspaceLimits;
        };
        message?: string;
    }): AuthError<"WorkspaceLimitsReached", {
        limit: keyof WorkspaceLimits;
    }>;
    code: "WorkspaceLimitsReached";
};
export declare const WorkspacePlanNoFeatureAccessError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"WorkspacePlanNoFeatureAccessError", undefined>;
    code: "WorkspacePlanNoFeatureAccessError";
};
export declare const WorkspaceProjectMoveInvalidError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"WorkspaceProjectMoveInvalid", undefined>;
    code: "WorkspaceProjectMoveInvalid";
};
export declare const WorkspaceSsoSessionNoAccessError: {
    new (params: string | {
        payload: {
            workspaceSlug: string;
        };
        message?: string;
    }): AuthError<"WorkspaceSsoSessionNoAccess", {
        workspaceSlug: string;
    }>;
    code: "WorkspaceSsoSessionNoAccess";
};
export declare const WorkspaceNoEditorSeatError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"WorkspaceNoEditorSeat", undefined>;
    code: "WorkspaceNoEditorSeat";
};
export declare const ServerNoAccessError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"ServerNoAccess", undefined>;
    code: "ServerNoAccess";
};
export declare const ServerNotEnoughPermissionsError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"ServerNotEnoughPermissions", undefined>;
    code: "ServerNotEnoughPermissions";
};
export declare const ServerNoSessionError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"ServerNoSession", undefined>;
    code: "ServerNoSession";
};
export declare const CommentNotFoundError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"CommentNotFound", undefined>;
    code: "CommentNotFound";
};
export declare const CommentNoAccessError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"CommentNoAccess", undefined>;
    code: "CommentNoAccess";
};
export declare const ModelNotFoundError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"ModelNotFound", undefined>;
    code: "ModelNotFound";
};
export declare const ReservedModelNotDeletableError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"ReservedModelNotDeletable", undefined>;
    code: "ReservedModelNotDeletable";
};
export declare const VersionNotFoundError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"VersionNotFound", undefined>;
    code: "VersionNotFound";
};
export declare const AutomateNotEnabledError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"AutomateNotEnabled", undefined>;
    code: "AutomateNotEnabled";
};
export declare const AutomateFunctionNotFoundError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"AutomateFunctionNotFound", undefined>;
    code: "AutomateFunctionNotFound";
};
export declare const AutomateFunctionNotCreatorError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"AutomateFunctionNotCreator", undefined>;
    code: "AutomateFunctionNotCreator";
};
export declare const AccIntegrationNotEnabledError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"AccIntegrationNotEnabled", undefined>;
    code: "AccIntegrationNotEnabled";
};
export declare const SavedViewNotFoundError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"SavedViewNotFound", undefined>;
    code: "SavedViewNotFound";
};
export declare const SavedViewNoAccessError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"SavedViewNoAccess", undefined>;
    code: "SavedViewNoAccess";
};
export declare const SavedViewInvalidUpdateError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"SavedViewInvalidUpdate", undefined>;
    code: "SavedViewInvalidUpdate";
};
export declare const SavedViewGroupNotFoundError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"SavedViewGroupNotFound", undefined>;
    code: "SavedViewGroupNotFound";
};
export declare const UngroupedSavedViewGroupLockError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"UngroupedSavedViewGroupLock", undefined>;
    code: "UngroupedSavedViewGroupLock";
};
export declare const DashboardsNotEnabledError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"DashboardsNotEnabled", undefined>;
    code: "DashboardsNotEnabled";
};
export declare const DashboardNotFoundError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"DashboardNotFound", undefined>;
    code: "DashboardNotFound";
};
export declare const DashboardNoProjectsError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"DashboardNoProjects", undefined>;
    code: "DashboardNoProjects";
};
export declare const DashboardProjectsNotEnoughPermissionsError: {
    new (params: string | {
        payload: {
            projectIds: string[];
        };
        message?: string;
    }): AuthError<"DashboardProjectsNotEnoughPermissions", {
        projectIds: string[];
    }>;
    code: "DashboardProjectsNotEnoughPermissions";
};
export declare const DashboardNotOwnerError: {
    new (params?: string | {
        message?: string;
    } | undefined): AuthError<"DashboardNotOwner", undefined>;
    code: "DashboardNotOwner";
};
export type AllAuthErrors = ValueOf<{
    [key in keyof typeof import('./authErrors.js')]: typeof import('./authErrors.js')[key] extends new (...args: any[]) => infer R ? R : never;
}>;
//# sourceMappingURL=authErrors.d.ts.map