export declare const PERMISSIONS: { readonly DB_VIEW: "db:view"; readonly DB_CREATE: "db:create"; readonly DB_DELETE: "db:delete"; readonly DB_EXPORT: "db:export"; readonly DB_IMPORT: "db:import"; readonly COLLECTION_VIEW: "collection:view"; readonly COLLECTION_CREATE: "collection:create"; readonly COLLECTION_DELETE: "collection:delete"; readonly DOCUMENT_VIEW: "document:view"; readonly DOCUMENT_QUERY: "document:query"; readonly DOCUMENT_CREATE: "document:create"; readonly DOCUMENT_UPDATE: "document:update"; readonly DOCUMENT_DELETE: "document:delete"; readonly DOCUMENT_AGGREGATE: "document:aggregate"; readonly DASHBOARD_VIEW: "dashboard:view"; readonly USER_VIEW: "user:view"; readonly USER_CREATE: "user:create"; readonly USER_UPDATE_ROLE: "user:update-role"; readonly USER_RESET_PASSWORD: "user:reset-password"; readonly USER_DELETE: "user:delete"; readonly ROLE_VIEW: "role:view"; readonly ROLE_CREATE: "role:create"; readonly ROLE_DELETE: "role:delete"; readonly INDEX_VIEW: "index:view"; readonly INDEX_CREATE: "index:create"; readonly INDEX_DELETE: "index:delete"; }; export type PermissionKey = (typeof PERMISSIONS)[keyof typeof PERMISSIONS]; interface PermissionCatalogueEntry { key: PermissionKey; group: string; description: string; } export declare const PERMISSION_CATALOGUE: PermissionCatalogueEntry[]; export declare const ALL_PERMISSION_KEYS: string[]; export declare const SUPER_ADMIN_ROLE = "Super Admin"; export declare const ADMIN_ROLE = "Admin"; export declare const VIEW_ROLE = "View"; export declare const PREDEFINED_ROLES: { roleName: string; permissions: string[]; }[]; export declare const RESERVED_DB_NAME = "config"; /** The `config` database backs the RBAC system and must never be reachable through the generic Database/Collection/Operation routes. */ export declare function isReservedDatabaseName(name: string): boolean; export declare const CONFIG_USERS_COLLECTION = "users"; export declare const CONFIG_ROLES_COLLECTION = "roles"; export declare const CONFIG_PERMISSIONS_COLLECTION = "permissions"; export declare const DEFAULT_ADMIN_USERNAME = "admin"; export declare const DEFAULT_ADMIN_PASSWORD = "admin"; export declare const SESSION_COOKIE_NAME = "axiodb_session"; export declare const SESSION_TTL_MS: number; export declare const SESSION_SWEEP_INTERVAL_MS: number; /** * Login rate limiting - shared by the GUI's /auth/login route and the TCP AUTHENTICATE * command (see LoginRateLimiter.service.ts). Tracked per client IP: after * LOGIN_RATE_LIMIT_MAX_ATTEMPTS failures within LOGIN_RATE_LIMIT_WINDOW_MS, that IP is * locked out for LOGIN_RATE_LIMIT_COOLDOWN_MS. */ export declare const LOGIN_RATE_LIMIT_MAX_ATTEMPTS = 5; export declare const LOGIN_RATE_LIMIT_WINDOW_MS: number; export declare const LOGIN_RATE_LIMIT_COOLDOWN_MS: number; export declare const LOGIN_RATE_LIMIT_SWEEP_INTERVAL_MS: number; export {};