export declare enum GroupFieldType {
    TEXT = "TEXT",
    NUMBER = "NUMBER",
    DECIMAL = "DECIMAL",
    BOOLEAN = "BOOLEAN",
    DATE = "DATE",
    DATETIME = "DATETIME",
    SELECT = "SELECT",
    MULTISELECT = "MULTISELECT",
    TEXTAREA = "TEXTAREA",
    URL = "URL",
    EMAIL = "EMAIL",
    PHONE = "PHONE"
}
export declare class CreateGroupCustomFieldDto {
    key: string;
    nameEn: string;
    nameCn?: string;
    type: GroupFieldType;
    required?: boolean;
    visible?: boolean;
    editable?: boolean;
    searchable?: boolean;
    options?: string[];
    validation?: Record<string, any>;
    description?: string;
    placeholder?: string;
    helpText?: string;
    displayOrder?: number;
}
export declare class CreatePartGroupDto {
    name: string;
    description?: string;
    displayOrder?: number;
    isActive?: boolean;
    customFields?: CreateGroupCustomFieldDto[];
}
export declare class UpdateGroupCustomFieldDto {
    id?: string;
    key?: string;
    nameEn?: string;
    nameCn?: string;
    type?: GroupFieldType;
    required?: boolean;
    visible?: boolean;
    editable?: boolean;
    searchable?: boolean;
    options?: string[];
    validation?: Record<string, any>;
    description?: string;
    placeholder?: string;
    helpText?: string;
    displayOrder?: number;
}
export declare class UpdatePartGroupDto {
    name?: string;
    description?: string;
    displayOrder?: number;
    isActive?: boolean;
}
export declare class AssignPartsToGroupDto {
    partIds: string[];
}
export declare class GroupCustomFieldResponseDto {
    id: string;
    groupId: string;
    key: string;
    nameEn: string;
    nameCn?: string;
    type: GroupFieldType;
    required: boolean;
    visible: boolean;
    editable: boolean;
    searchable: boolean;
    options?: string[];
    validation?: Record<string, any>;
    description?: string;
    placeholder?: string;
    helpText?: string;
    displayOrder: number;
    createdAt: Date;
    updatedAt: Date;
}
export declare class PartGroupResponseDto {
    id: string;
    name: string;
    description?: string;
    displayOrder: number;
    isActive: boolean;
    partsCount: number;
    fieldsCount: number;
    customFields?: GroupCustomFieldResponseDto[];
    createdAt: Date;
    updatedAt: Date;
}
export declare class QueryPartGroupsDto {
    search?: string;
    isActive?: boolean;
    page?: number;
    limit?: number;
}
