import type { Request, Response, NextFunction } from 'express';
import { type EditorPermissions, type Resource } from '../utils/permissions.js';
export interface AuthedRequest extends Request {
    editor?: {
        id: number;
        email: string;
        name: string | null;
        roleId: number;
        roleName: string;
        roleIsProtected: boolean;
        permissions: EditorPermissions | null;
    };
}
declare const COOKIE_NAME = "hpaxm_session";
export declare function sessionAuth(req: AuthedRequest, _res: Response, next: NextFunction): Promise<void>;
export declare function requireAuth(req: AuthedRequest, res: Response, next: NextFunction): Response<any, Record<string, any>> | undefined;
export declare function requirePermission(resource: Resource, action: string): (req: AuthedRequest, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined;
export declare function requireAdmin(req: AuthedRequest, res: Response, next: NextFunction): Response<any, Record<string, any>> | undefined;
export { COOKIE_NAME };
