/**
 * Authentication related types and interfaces
 */
/**
 * Session status enum - Chuẩn theo automation-web controller
 */
export declare enum SessionStatus {
    PENDING = "pending",
    SCANNING = "scanning",
    SUCCESS = "success",
    FAILED = "failed",
    EXPIRED = "expired",
    QR_EXPIRED = "qr_expired"
}
/**
 * Zalo credentials for login - Chuẩn theo automation-web shared types
 */
export interface ZaloCredentials {
    /**
     * Cookie array from browser - as received from SDK login
     */
    cookie: Array<Record<string, unknown>>;
    /**
     * Device IMEI
     */
    imei: string;
    /**
     * Browser user agent
     */
    userAgent: string;
    /**
     * Language preference
     * @default 'vi'
     */
    language?: string;
}
/**
 * Zalo user data - Chuẩn theo automation-web shared types
 */
export interface ZaloUserData {
    /**
     * Zalo platform user ID (stringified number)
     */
    userId: string;
    /**
     * Display name
     */
    displayName: string;
    /**
     * Avatar URL
     */
    avatar: string;
    /**
     * Optional details, may be absent depending on SDK method
     */
    username?: string;
    /**
     * Phone number (if available)
     */
    phoneNumber?: string;
    /**
     * Gender (0/1)
     */
    gender?: number;
    /**
     * Status
     */
    status?: string;
    /**
     * Cover image URL
     */
    cover?: string;
    /**
     * Global ID
     */
    globalId?: string;
    /**
     * Is active (0/1)
     */
    isActive?: number;
    /**
     * Last action time (epoch millis)
     */
    lastActionTime?: number;
    /**
     * Created timestamp (epoch seconds)
     */
    createdTs?: number;
    /**
     * Email (rarely present)
     */
    email?: string;
    /**
     * Additional properties
     */
    [key: string]: unknown;
}
/**
 * QR Login Options - Tùy chọn cho QR login
 */
export interface QRLoginOptions {
    /**
     * Thời gian timeout cho QR code (giây)
     * @default 120
     */
    timeout?: number;
    /**
     * Tự động đăng nhập sau khi quét QR
     * @default true
     */
    autoLogin?: boolean;
}
/**
 * QR Code login request - Chuẩn theo automation-web QRLoginRequestDto
 */
export interface QRLoginRequest {
    /**
     * UUID của user từ redai-v201-be-app
     */
    userUuid: string;
    /**
     * Session ID tùy chọn, sẽ auto-generate nếu không cung cấp
     */
    sessionId?: string;
    /**
     * Tùy chọn cho QR login
     */
    options?: QRLoginOptions;
}
/**
 * QR Login Data - Dữ liệu QR Code
 */
export interface QRLoginData {
    /**
     * Session ID để tracking
     */
    sessionId: string;
    /**
     * QR Code dưới dạng base64
     */
    qrCode: string;
    /**
     * Thời gian hết hạn QR code (timestamp)
     */
    expiresAt: number;
    /**
     * URL để polling status
     */
    pollUrl: string;
}
/**
 * QR Code login response - Chuẩn theo automation-web QRLoginResponseDto
 */
export interface QRLoginResponse {
    /**
     * Trạng thái thành công
     */
    success: boolean;
    /**
     * Thông báo
     */
    message: string;
    /**
     * Dữ liệu response
     */
    data?: QRLoginData;
}
/**
 * Session Info - Thông tin session
 */
export interface SessionInfo {
    /**
     * Session ID
     */
    sessionId: string;
    /**
     * Thời gian tạo session (timestamp)
     */
    createdAt: number;
    /**
     * Thời gian hết hạn session (timestamp)
     */
    expiresAt: number;
    /**
     * Thời gian hết hạn QR code (timestamp)
     */
    qrExpiresAt?: number;
    /**
     * Lần hoạt động cuối (timestamp)
     */
    lastActivity: number;
}
/**
 * Login Status Data - Dữ liệu trạng thái đăng nhập
 */
export interface LoginStatusData {
    /**
     * Trạng thái session
     */
    status: SessionStatus;
    /**
     * Thông tin user Zalo (khi đăng nhập thành công)
     */
    userData?: ZaloUserData;
    /**
     * Credentials để reuse (khi đăng nhập thành công)
     */
    credentials?: ZaloCredentials;
    /**
     * Thông tin session
     */
    sessionInfo: SessionInfo;
}
/**
 * Login status response - Chuẩn theo automation-web LoginStatusResponseDto
 */
export interface LoginStatusResponse {
    /**
     * Trạng thái thành công
     */
    success: boolean;
    /**
     * Thông báo
     */
    message: string;
    /**
     * Dữ liệu status
     */
    data?: LoginStatusData;
}
/**
 * Credentials Login Options - Chuẩn theo automation-web CredentialsLoginOptionsDto
 */
export interface CredentialsLoginOptions {
    /**
     * Chỉ validate credentials, không tạo session
     * @default false
     */
    validateOnly?: boolean;
}
/**
 * Credentials login request - Chuẩn theo automation-web CredentialsLoginRequestDto
 */
export interface CredentialsLoginRequest {
    /**
     * UUID của user từ redai-v201-be-app
     */
    userUuid: string;
    /**
     * Zalo credentials để đăng nhập
     */
    credentials: ZaloCredentials;
    /**
     * Tùy chọn cho credentials login
     */
    options?: CredentialsLoginOptions;
}
/**
 * Credentials Login Data - Dữ liệu credentials login
 */
export interface CredentialsLoginData {
    /**
     * Session ID được tạo
     */
    sessionId: string;
    /**
     * Thông tin user Zalo
     */
    userData: ZaloUserData;
    /**
     * Credentials có hợp lệ không
     */
    isValid: boolean;
}
/**
 * Credentials login response - Chuẩn theo automation-web CredentialsLoginResponseDto
 */
export interface CredentialsLoginResponse {
    /**
     * Trạng thái thành công
     */
    success: boolean;
    /**
     * Thông báo
     */
    message: string;
    /**
     * Dữ liệu response
     */
    data?: CredentialsLoginData;
}
/**
 * Session Item - Chuẩn theo automation-web SessionItemDto
 */
export interface SessionItem {
    /**
     * Session ID
     */
    sessionId: string;
    /**
     * Trạng thái session
     */
    status: SessionStatus;
    /**
     * Thông tin user (nếu đã đăng nhập thành công)
     */
    userData?: ZaloUserData;
    /**
     * Thời gian tạo (timestamp)
     */
    createdAt: number;
    /**
     * Lần hoạt động cuối (timestamp)
     */
    lastActivity: number;
    /**
     * Thời gian hết hạn (timestamp)
     */
    expiresAt: number;
    /**
     * Session có hết hạn chưa
     */
    isExpired: boolean;
}
/**
 * Session List Data - Dữ liệu danh sách sessions
 */
export interface SessionListData {
    /**
     * Danh sách sessions
     */
    sessions: SessionItem[];
    /**
     * Tổng số sessions
     */
    total: number;
    /**
     * Số sessions đang active
     */
    activeCount: number;
}
/**
 * Session list response - Chuẩn theo automation-web SessionListResponseDto
 */
export interface SessionListResponse {
    /**
     * Trạng thái thành công
     */
    success: boolean;
    /**
     * Thông báo
     */
    message: string;
    /**
     * Dữ liệu sessions
     */
    data?: SessionListData;
}
/**
 * Session delete response - Chuẩn theo automation-web SessionDeleteResponseDto
 */
export interface SessionDeleteResponse {
    /**
     * Trạng thái thành công
     */
    success: boolean;
    /**
     * Thông báo
     */
    message: string;
}
/**
 * Bulk delete sessions request - Chuẩn theo automation-web BulkDeleteSessionsDto
 */
export interface BulkDeleteSessionsRequest {
    /**
     * Danh sách session IDs cần xóa
     */
    sessionIds: string[];
}
/**
 * Bulk delete sessions response - Chuẩn theo automation-web BulkDeleteSessionsResponseDto
 */
export interface BulkDeleteSessionsResponse {
    /**
     * Trạng thái thành công
     */
    success: boolean;
    /**
     * Thông báo
     */
    message: string;
    /**
     * Số lượng sessions đã xóa thành công
     */
    deletedCount: number;
    /**
     * Danh sách session IDs đã xóa thành công
     */
    deletedIds: string[];
    /**
     * Số lượng sessions xóa thất bại
     */
    failedCount?: number;
    /**
     * Danh sách session IDs xóa thất bại
     */
    failedIds?: string[];
    /**
     * Danh sách lỗi chi tiết
     */
    errors?: string[];
}
/**
 * Session Debug Data - Dữ liệu debug session
 */
export interface SessionDebugData {
    /**
     * Session ID
     */
    sessionId: string;
    /**
     * User UUID
     */
    userUuid: string;
    /**
     * Trạng thái session
     */
    status: SessionStatus;
    /**
     * QR Code (truncated)
     */
    qrCode: string | null;
    /**
     * Thời gian hết hạn QR code
     */
    qrExpiresAt?: number;
    /**
     * Có credentials không
     */
    hasCredentials: boolean;
    /**
     * Thông tin credentials
     */
    credentialsInfo?: {
        cookieCount: number;
        hasImei: boolean;
        hasUserAgent: boolean;
        language?: string;
    };
    /**
     * Có user data không
     */
    hasUserData: boolean;
    /**
     * Thông tin user data
     */
    userDataInfo?: {
        userId?: string;
        displayName?: string;
        hasAvatar: boolean;
    };
    /**
     * Thông tin timestamps
     */
    timestamps: {
        createdAt: number;
        expiresAt: number;
        lastActivity: number;
    };
    /**
     * Trạng thái hết hạn
     */
    isExpired: boolean;
    /**
     * Trạng thái QR hết hạn
     */
    isQRExpired: boolean;
    /**
     * Thông tin instance
     */
    instanceInfo?: {
        hasInstance: boolean;
        isConnected?: boolean;
        lastPing?: number;
    };
}
/**
 * Session debug information - Chuẩn theo automation-web debugSession response
 */
export interface SessionDebugInfo {
    /**
     * Trạng thái thành công
     */
    success: boolean;
    /**
     * Thông báo
     */
    message: string;
    /**
     * Dữ liệu debug (nếu thành công)
     */
    data?: SessionDebugData;
    /**
     * Thông tin lỗi (nếu thất bại)
     */
    error?: string;
    /**
     * Timestamp
     */
    timestamp?: number;
}
//# sourceMappingURL=auth.types.d.ts.map