import { ServiceTicketActivityType, ServiceTicketStatus, TicketSeverity } from '@prisma/client';
import type { CurrentUserPayload } from "../../../common/decorators/current-user.decorator";
import { ServiceTicketService } from './service-ticket.service';
declare class CreateTicketDto {
    ticketNo: string;
    robotUnitId: string;
    customerId?: string;
    issueTypeCode: string;
    severity?: TicketSeverity;
    serviceRecord?: string;
}
declare class UpdateTicketDto {
    status?: ServiceTicketStatus;
    severity?: TicketSeverity;
    serviceRecord?: string;
    customerFeedback?: string;
}
declare class AddActivityDto {
    activityType: ServiceTicketActivityType;
    payload?: Record<string, any>;
}
export declare class ServiceTicketController {
    private readonly service;
    constructor(service: ServiceTicketService);
    list(q: any): Promise<{
        items: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.ServiceTicketStatus;
            updatedAt: Date;
            deletedAt: Date | null;
            organizationId: string;
            createdById: string;
            severity: import("@prisma/client").$Enums.TicketSeverity;
            ticketNo: string;
            closedAt: Date | null;
            robotUnitId: string;
            customerId: string | null;
            resolvedById: string | null;
            issueTypeCode: string;
            serviceRecord: string | null;
            customerFeedback: string | null;
            openedAt: Date;
            openedById: string;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    findOne(id: string): Promise<{
        activities: {
            id: string;
            createdAt: Date;
            createdById: string;
            activityType: import("@prisma/client").$Enums.ServiceTicketActivityType;
            payload: import("@prisma/client/runtime/library").JsonValue;
            ticketId: string;
            occurredAt: Date;
        }[];
    } & {
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.ServiceTicketStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        severity: import("@prisma/client").$Enums.TicketSeverity;
        ticketNo: string;
        closedAt: Date | null;
        robotUnitId: string;
        customerId: string | null;
        resolvedById: string | null;
        issueTypeCode: string;
        serviceRecord: string | null;
        customerFeedback: string | null;
        openedAt: Date;
        openedById: string;
    }>;
    create(dto: CreateTicketDto, user: CurrentUserPayload): Promise<{
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.ServiceTicketStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        severity: import("@prisma/client").$Enums.TicketSeverity;
        ticketNo: string;
        closedAt: Date | null;
        robotUnitId: string;
        customerId: string | null;
        resolvedById: string | null;
        issueTypeCode: string;
        serviceRecord: string | null;
        customerFeedback: string | null;
        openedAt: Date;
        openedById: string;
    }>;
    update(id: string, dto: UpdateTicketDto, user: CurrentUserPayload): Promise<{
        activities: {
            id: string;
            createdAt: Date;
            createdById: string;
            activityType: import("@prisma/client").$Enums.ServiceTicketActivityType;
            payload: import("@prisma/client/runtime/library").JsonValue;
            ticketId: string;
            occurredAt: Date;
        }[];
    } & {
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.ServiceTicketStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        severity: import("@prisma/client").$Enums.TicketSeverity;
        ticketNo: string;
        closedAt: Date | null;
        robotUnitId: string;
        customerId: string | null;
        resolvedById: string | null;
        issueTypeCode: string;
        serviceRecord: string | null;
        customerFeedback: string | null;
        openedAt: Date;
        openedById: string;
    }>;
    addActivity(id: string, dto: AddActivityDto, user: CurrentUserPayload): Promise<{
        id: string;
        createdAt: Date;
        createdById: string;
        activityType: import("@prisma/client").$Enums.ServiceTicketActivityType;
        payload: import("@prisma/client/runtime/library").JsonValue;
        ticketId: string;
        occurredAt: Date;
    }>;
}
export {};
