/**
 * User Management Type Definitions for Zalo OA
 */
export interface UserProfile {
    error: number;
    message: string;
    data?: {
        user_id: string;
        user_id_by_app: string;
        display_name: string;
        user_alias?: string;
        user_is_follower: boolean;
        avatar?: string;
        avatars?: {
            '120': string;
            '240': string;
        };
        user_gender?: 'male' | 'female';
        user_locale?: string;
        shared_info?: {
            address?: string;
            phone?: string;
            name?: string;
            district?: string;
            province?: string;
            ward?: string;
        };
        tags_and_notes_info?: {
            tag_names?: string[];
            notes?: string;
        };
        is_sensitive?: boolean;
        last_interaction_date?: string;
        user_last_interaction_date?: string;
    };
}
export interface UserList {
    error: number;
    message: string;
    data?: {
        followers: Array<{
            user_id: string;
            user_id_by_app?: string;
            display_name: string;
            avatar?: string;
            user_is_follower: boolean;
            user_last_interaction_date?: string;
        }>;
        total: number;
    };
}
export interface UserTag {
    tag_id?: string;
    tag_name: string;
    tag_color?: string;
    created_time?: string;
    user_count?: number;
}
export interface UserTagList {
    error: number;
    message: string;
    data?: {
        tags: UserTag[];
        total: number;
    };
}
export interface UserNote {
    note_id: string;
    note_content: string;
    created_time: string;
    created_by?: string;
    updated_time?: string;
    updated_by?: string;
}
export interface UserInteraction {
    interaction_id: string;
    interaction_type: 'MESSAGE_SENT' | 'MESSAGE_RECEIVED' | 'FOLLOW' | 'UNFOLLOW' | 'BLOCK' | 'UNBLOCK';
    interaction_time: string;
    interaction_data?: {
        message_id?: string;
        message_type?: 'text' | 'image' | 'file' | 'sticker' | 'location' | 'template';
        message_content?: string;
        attachment_id?: string;
        template_id?: string;
    };
    source?: 'OA_CHAT' | 'ZNS' | 'GROUP_CHAT' | 'SOCIAL';
}
export interface UserAnalytics {
    user_id: string;
    period: {
        from: string;
        to: string;
    };
    metrics: {
        total_interactions: number;
        messages_sent: number;
        messages_received: number;
        response_rate: number;
        avg_response_time: number;
        last_interaction: string;
        interaction_frequency: 'HIGH' | 'MEDIUM' | 'LOW';
    };
    interaction_breakdown: {
        by_type: Record<string, number>;
        by_day: Array<{
            date: string;
            interactions: number;
        }>;
        by_hour: Array<{
            hour: number;
            interactions: number;
        }>;
    };
    engagement_score: number;
}
export interface UserSegment {
    segment_id: string;
    segment_name: string;
    segment_description?: string;
    criteria: {
        tags?: string[];
        interaction_frequency?: 'HIGH' | 'MEDIUM' | 'LOW';
        last_interaction_days?: number;
        user_attributes?: Record<string, any>;
        custom_fields?: Record<string, any>;
    };
    user_count: number;
    created_time: string;
    updated_time?: string;
}
export interface UserCustomField {
    field_id: string;
    field_name: string;
    field_type: 'TEXT' | 'NUMBER' | 'DATE' | 'BOOLEAN' | 'SELECT' | 'MULTI_SELECT';
    field_options?: string[];
    is_required: boolean;
    is_searchable: boolean;
    created_time: string;
}
export interface UserCustomFieldValue {
    field_id: string;
    field_name: string;
    field_value: any;
    updated_time: string;
}
export interface UserBehavior {
    user_id: string;
    behavior_type: 'PAGE_VIEW' | 'BUTTON_CLICK' | 'FORM_SUBMIT' | 'PURCHASE' | 'CUSTOM';
    behavior_data: Record<string, any>;
    timestamp: string;
    source: string;
    session_id?: string;
}
export interface UserJourney {
    user_id: string;
    journey_id: string;
    journey_name: string;
    current_step: string;
    step_history: Array<{
        step_id: string;
        step_name: string;
        entered_time: string;
        completed_time?: string;
        status: 'COMPLETED' | 'IN_PROGRESS' | 'SKIPPED' | 'FAILED';
    }>;
    journey_status: 'ACTIVE' | 'COMPLETED' | 'ABANDONED' | 'PAUSED';
    started_time: string;
    completed_time?: string;
    abandoned_time?: string;
}
export interface UserPreference {
    user_id: string;
    preferences: {
        communication_channels: ('OA_CHAT' | 'ZNS' | 'EMAIL' | 'SMS')[];
        message_frequency: 'REAL_TIME' | 'DAILY' | 'WEEKLY' | 'MONTHLY';
        content_types: string[];
        language: string;
        timezone: string;
        opt_in_marketing: boolean;
        opt_in_notifications: boolean;
    };
    updated_time: string;
}
export interface UserActivity {
    activity_id: string;
    user_id: string;
    activity_type: string;
    activity_description: string;
    activity_time: string;
    metadata?: Record<string, any>;
}
export interface UserExport {
    export_id: string;
    export_type: 'ALL_USERS' | 'FILTERED_USERS' | 'SEGMENT_USERS';
    filters?: {
        tags?: string[];
        date_range?: {
            from: string;
            to: string;
        };
        interaction_criteria?: Record<string, any>;
    };
    segment_id?: string;
    export_format: 'CSV' | 'EXCEL' | 'JSON';
    status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED';
    file_url?: string;
    total_records?: number;
    created_time: string;
    completed_time?: string;
    expires_at?: string;
}
export interface UserImport {
    import_id: string;
    import_type: 'NEW_USERS' | 'UPDATE_USERS' | 'MERGE_USERS';
    file_url: string;
    mapping: Record<string, string>;
    status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED';
    total_records?: number;
    processed_records?: number;
    successful_records?: number;
    failed_records?: number;
    error_details?: Array<{
        row: number;
        error: string;
    }>;
    created_time: string;
    completed_time?: string;
}
export interface UserSearch {
    query: string;
    filters?: {
        tags?: string[];
        user_attributes?: Record<string, any>;
        interaction_date_range?: {
            from: string;
            to: string;
        };
        custom_fields?: Record<string, any>;
    };
    sort?: {
        field: string;
        order: 'ASC' | 'DESC';
    };
    pagination: {
        offset: number;
        limit: number;
    };
}
export interface UserSearchResult {
    users: UserProfile[];
    total_count: number;
    has_more: boolean;
    search_time: number;
}
export interface BulkUserOperation {
    operation_id: string;
    operation_type: 'TAG_USERS' | 'UNTAG_USERS' | 'DELETE_USERS' | 'UPDATE_USERS';
    user_ids: string[];
    operation_data?: Record<string, any>;
    status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED';
    total_users: number;
    processed_users?: number;
    successful_operations?: number;
    failed_operations?: number;
    created_time: string;
    completed_time?: string;
}
export interface UserManagementApiResponse<T = any> {
    error: number;
    message: string;
    data?: T;
}
export type UserProfileResponse = UserManagementApiResponse<UserProfile['data']>;
export type UserListResponse = UserManagementApiResponse<UserList['data']>;
export type UserTagResponse = UserManagementApiResponse<UserTag>;
export type UserTagListResponse = UserManagementApiResponse<UserTagList['data']>;
export type UserAnalyticsResponse = UserManagementApiResponse<UserAnalytics>;
export type UserSegmentResponse = UserManagementApiResponse<UserSegment>;
export type BulkOperationResponse = UserManagementApiResponse<BulkUserOperation>;
//# sourceMappingURL=user-management.d.ts.map