import { CreateQuoteDto } from './dto/create-quote.dto';
import { UpdateQuoteDto } from './dto/update-quote.dto';
import { PrismaService } from 'src/prisma/prisma.service';
import { EmailsService } from 'src/emails/emails.service';
export declare class QuotesService {
    private prisma;
    private emailer;
    constructor(prisma: PrismaService, emailer: EmailsService);
    private readonly logger;
    create(createQuoteDto: CreateQuoteDto): string;
    regenQuoteKey(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;
    }>;
    findAll(skip: number | undefined, take: number | undefined, sortBy: string, sortOrder: string, search?: string, status?: 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;
    })[][], number, number]>;
    findOne(quoteKey: string): Promise<any>;
    generateProof(quoteKey: string): Promise<{
        url: string;
        jobId: number | undefined;
    }>;
    approve(key: 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;
    }>;
    emailQuote(key: string, email: string, subject?: string, message?: string, htmlMessage?: string): Promise<{
        message: string;
    }>;
    reject(key: string, shippingNotes: 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;
    }>;
    update(id: number, updateQuoteDto: UpdateQuoteDto): string;
    remove(id: number): string;
}
