import { z } from "zod"; export declare const ROLES: readonly ["ADMIN", "EDITOR"]; export type Role = (typeof ROLES)[number]; export declare const ROLE_LABELS: Record; /** Normalize Iranian mobile to `09XXXXXXXXX` (Latin digits). */ export declare function normalizeIrMobile(raw: string): string; export declare const irMobileSchema: z.ZodPipe>, z.ZodString>; export declare const loginSchema: z.ZodObject<{ phone: z.ZodPipe>, z.ZodString>; password: z.ZodString; }, z.core.$strip>; export type LoginInput = z.infer; export declare const changePasswordSchema: z.ZodObject<{ currentPassword: z.ZodString; newPassword: z.ZodString; }, z.core.$strip>; export type ChangePasswordInput = z.infer; export declare const userCreateSchema: z.ZodObject<{ phone: z.ZodPipe>, z.ZodString>; name: z.ZodString; role: z.ZodEnum<{ ADMIN: "ADMIN"; EDITOR: "EDITOR"; }>; password: z.ZodString; }, z.core.$strip>; export type UserCreateInput = z.infer; export declare const userUpdateSchema: z.ZodObject<{ name: z.ZodString; role: z.ZodEnum<{ ADMIN: "ADMIN"; EDITOR: "EDITOR"; }>; isActive: z.ZodBoolean; password: z.ZodOptional; }, z.core.$strip>; export type UserUpdateInput = z.infer; export interface AdminUserDto { id: number; phone: string; name: string; role: Role; isActive: boolean; lastLoginAt: string | null; createdAt: string; } export interface AuthResponse { accessToken: string; user: AdminUserDto; } export declare const MESSAGE_STATUSES: readonly ["NEW", "READ", "ARCHIVED"]; export type MessageStatus = (typeof MESSAGE_STATUSES)[number]; export declare const MESSAGE_STATUS_LABELS: Record; export declare const contactInputSchema: z.ZodObject<{ name: z.ZodString; org: z.ZodString; phone: z.ZodString; message: z.ZodDefault; website: z.ZodOptional; }, z.core.$strip>; export type ContactInput = z.infer; export declare const messageUpdateSchema: z.ZodObject<{ status: z.ZodEnum<{ NEW: "NEW"; READ: "READ"; ARCHIVED: "ARCHIVED"; }>; }, z.core.$strip>; export interface ContactMessageDto { id: number; name: string; org: string; phone: string; message: string; status: MessageStatus; createdAt: string; } export interface MediaDto { id: number; url: string; alt: string; mime: string; size: number; width: number | null; height: number | null; originalName: string; createdAt: string; } export declare const mediaUpdateSchema: z.ZodObject<{ alt: z.ZodDefault; }, z.core.$strip>; export interface Paginated { items: T[]; total: number; page: number; pageSize: number; } export interface DashboardCategoryStat { id: number; name: string; count: number; } export interface DashboardTrendDay { date: string; dayName: string; messages: number; } export interface DashboardDto { categories: number; products: number; draftProducts: number; newMessages: number; media: number; recentMessages: ContactMessageDto[]; recentActivity: { id: number; action: string; entity: string; summary: string; user: string | null; createdAt: string; }[]; categoryStats: DashboardCategoryStat[]; messageBreakdown: { new: number; read: number; archived: number; total: number; }; sectionsSummary: { total: number; visible: number; hidden: number; }; trend: DashboardTrendDay[]; } //# sourceMappingURL=admin.d.ts.map