import { Role } from "../../../models/Roles";
import { PaginationOptions } from "../../../../global/utilities";
import { RoleGetDTO } from "./RoleDTO";
export declare class UserGetDTO {
    id: string;
    refId: number;
    email?: string;
    name?: string;
    phone?: string;
    photo?: string;
    roles: RoleGetDTO[];
    isActive: boolean;
    lastLogin?: Date;
    createdAt: Date;
    updatedAt: Date;
    static fromEntity(entity: any): UserGetDTO;
    toPlain(): Record<string, unknown>;
}
export declare class UserCreateDTO {
    email?: string;
    password: string;
    name?: string;
    phone: string;
    photo?: string;
    roleIds?: string[];
    isActive?: boolean;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): UserCreateDTO;
    toPlain(): Record<string, unknown>;
}
export declare class UserUpdateDTO {
    password?: string;
    name?: string;
    phone?: string;
    email?: string;
    photo?: string;
    roleIds?: string[];
    isActive?: boolean;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): UserUpdateDTO;
    toPlain(): Record<string, unknown>;
}
export declare class UserFetchDTO {
    filters?: UserFilterDTO;
    options?: UserOptionsDTO;
    static fromPlain(plain: Record<string, unknown>): UserFetchDTO;
    toPlain(): Record<string, unknown>;
}
export declare class UserFilterDTO {
    search?: string;
    id?: string | string[];
    email?: string | string[];
    name?: string | string[];
    phone?: string | string[];
    isPhoneNumberVerified?: boolean;
    roles?: Role[];
    isActive?: boolean;
    hasSpecialRoles?: boolean;
    fromDate?: Date;
    toDate?: Date;
    validate(): string[];
    static fromPlain(plain: Record<string, unknown>): UserFilterDTO;
    toPlain(): Record<string, unknown>;
}
export declare class UserOptionsDTO extends PaginationOptions {
    withDocuments?: boolean;
    withDeposits?: boolean;
    withFavoriteVehicles?: boolean;
    static fromPlain(plain: Record<string, unknown>): UserOptionsDTO;
    toPlain(): Record<string, unknown>;
}
