import { CustomerPriority, CustomerGender, CustomerStatus } from '../entities/kanban-customer.entity';
import { ActivityType, ActivityStatus } from '../entities/kanban-activity.entity';
import { WebhookStatus } from '../entities/kanban-webhook.entity';
export declare class CreateCustomerDto {
    fullName: string;
    email?: string;
    phone?: string;
    phone2?: string;
    gender?: CustomerGender;
    dateOfBirth?: string;
    address?: string;
    city?: string;
    province?: string;
    country?: string;
    company?: string;
    jobTitle?: string;
    industry?: string;
    estimatedValue?: number;
    currency?: string;
    stageId?: string;
    priority?: CustomerPriority;
    assignedSaleId?: number;
    relatedSaleIds?: number[];
    sourceId?: string;
    sourceRef?: string;
    tags?: string[];
    notes?: string;
    expectedCloseDate?: string;
    nextFollowUpAt?: string;
}
export declare class UpdateCustomerDto extends CreateCustomerDto {
}
export declare class MoveStageDto {
    stageId: string;
    stageOrder?: number;
}
export declare class AssignSaleDto {
    assignedSaleId?: number;
    relatedSaleIds?: number[];
}
export declare class CustomerListQueryDto {
    page?: number;
    limit?: number;
    search?: string;
    stageId?: string;
    assignedSaleIds?: string;
    relatedSaleIds?: string;
    sourceId?: string;
    priority?: CustomerPriority;
    status?: CustomerStatus;
    tags?: string;
    fromDate?: string;
    toDate?: string;
    sortBy?: string;
    sortOrder?: 'ASC' | 'DESC';
}
export declare class CreateStageDto {
    name: string;
    type: string;
    description?: string;
    sortOrder?: number;
    color?: string;
    wipLimit?: number;
    isActive?: boolean;
}
export declare class UpdateStageDto extends CreateStageDto {
}
export declare class ReorderStagesDto {
    stages: {
        id: string;
        sortOrder: number;
    }[];
}
export declare class CreateActivityDto {
    type: ActivityType;
    title: string;
    description?: string;
    status?: ActivityStatus;
    scheduledAt?: string;
    durationMinutes?: number;
    isPinned?: boolean;
}
export declare class UpdateActivityDto extends CreateActivityDto {
}
export declare class ActivityListQueryDto {
    page?: number;
    limit?: number;
    type?: ActivityType;
    status?: ActivityStatus;
    search?: string;
}
export declare class CreateLeadSourceDto {
    name: string;
    type?: string;
    description?: string;
    isActive?: boolean;
}
export declare class CreateWebhookSourceDto {
    name: string;
    sourceKey: string;
    secretToken?: string;
    fieldMapping: Record<string, string>;
    defaultValues?: Record<string, any>;
    defaultAssignedSaleId?: number;
    leadSourceId?: string;
    description?: string;
}
export declare class UpdateWebhookSourceDto extends CreateWebhookSourceDto {
}
export declare class WebhookLogQueryDto {
    sourceKey?: string;
    status?: WebhookStatus;
    page?: number;
    limit?: number;
}
