import { CreateJobDto } from './dto/create-job.dto';
import { UpdateJobDto } from './dto/update-job.dto';
import { PrismaService } from 'src/prisma/prisma.service';
export declare class JobsService {
    private prisma;
    constructor(prisma: PrismaService);
    private readonly logger;
    create(createJobDto: CreateJobDto): Promise<{
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    }>;
    findAll(skip: number | undefined, take: number | undefined, sortBy: string, sortOrder: string, search?: string, status?: string | Array<string> | undefined, assignee?: number | undefined): Promise<[({
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    } | {
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    })[][], number, number]>;
    findBySearch(skip?: number, take?: number, sortBy?: string, sortOrder?: string, search?: string | number, searchType?: string): Promise<[({
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    } | {
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    })[][], number, number]>;
    findByMultiSearch(skip?: number, take?: number, sortBy?: string, sortOrder?: string, includeTotals?: boolean, search?: string): Promise<[({
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    } | {
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    })[][], number, number]>;
    findOne(id: number, fields?: Array<string> | undefined): Promise<{
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    } | {
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    } | null>;
    findStatus(id: number): Promise<{
        id: number;
        status: string;
    } | null>;
    generateStockTake(jobId: number): Promise<{
        url: string;
        jobId: number | undefined;
    }>;
    update(id: number, updateJobDto: UpdateJobDto): Promise<{
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    }>;
    remove(id: number): Promise<{
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    }>;
    findQuote(quoteKey: string): Promise<({
        fees: ({
            fee: {
                id: number;
                name: string;
                createdAt: Date;
                updatedAt: Date;
                description: string;
                modifier: string;
                type: string;
                amount: number;
                taxable: boolean;
            } | null;
        } & {
            id: number;
            createdAt: Date;
            updatedAt: Date;
            jobId: number | null;
            quantity: number;
            feeId: number | null;
            priceOverwrite: number;
        })[];
    } & {
        id: number;
        createdAt: Date;
        updatedAt: Date;
        clientId: number;
        title: string;
        description: string;
        status: string;
        poNumber: string;
        invoiceDate: Date;
        productionDate: Date | null;
        productionPriority: number;
        productionNotes: string | null;
        shippingOption: string;
        shippingName: string;
        shippingAddress1: string;
        shippingAddress2: string;
        shippingCity: string;
        shippingState: string;
        shippingPostcode: string;
        shippingCountry: string;
        shippingPhone: string;
        shippingEmail: string;
        shippingNotes: string;
        createdById: number;
        quoteKey: string | null;
        published: boolean;
        invoiceNumber: string;
        generalNotes: string;
        assignedToId: number | null;
    }) | null>;
    findManyDates(startDate: string, endDate: string, statusString?: string): Promise<any[]>;
    findAllSimpleTotal(client: string, status?: string | Array<string> | undefined): Promise<number>;
}
