import { CreateNumberPlateListingDto, MarkNumberPlateSoldDto, NumberPlateMarketplaceQueryDto, NumberPlateCarPreviewQueryDto, NumberPlatePreviewQueryDto, UpdateNumberPlateListingDto, UpdateNumberPlateListingStatusDto } from "./numberplate.dto";
import { NumberPlateService } from "./numberplate.service";
export declare class NumberPlateController {
    private readonly numberPlateService;
    constructor(numberPlateService: NumberPlateService);
    createListing(body: CreateNumberPlateListingDto, req: any): Promise<{
        status: boolean;
        message: string;
        data: import("../../common/numberplate/numberplate-listing.entity").NumberPlateListing;
    }>;
    findMarketplaceListings(query: NumberPlateMarketplaceQueryDto): Promise<{
        status: boolean;
        message: string;
        data: {
            contact: {
                whatsappUrl: string;
                whatsappText: string;
            };
            isExpired: boolean;
            id: number;
            parentListingId: number;
            sellerUserId: number;
            emirate: string;
            emirateLabel: string;
            design: string;
            designLabel: string;
            code: string;
            number: string;
            digitCount: number;
            plateType: string;
            vehicleType: string;
            flag1: string;
            flag2: string;
            price: number;
            isNegotiable: boolean;
            currency: string;
            description: string;
            sellerName: string;
            sellerMobile: string;
            sellerEmail: string;
            plateImageUrl: string;
            uploadedPlateImageUrl: string;
            frontPreviewUrl: string;
            backPreviewUrl: string;
            expiresAt: Date;
            isVisible: boolean;
            validityDays: number;
            approvedAt: Date;
            approvedByUserId: number;
            publishedAt: Date;
            rejectionReason: string;
            status: import("../../common/numberplate/numberplate-listing.entity").NumberPlateListingStatus;
            createdAt: Date;
            updatedAt: Date;
        }[];
    }>;
    findSellerListings(sellerUserId: number): Promise<{
        status: boolean;
        message: string;
        data: {
            contact: {
                whatsappUrl: string;
                whatsappText: string;
            };
            isExpired: boolean;
            id: number;
            parentListingId: number;
            sellerUserId: number;
            emirate: string;
            emirateLabel: string;
            design: string;
            designLabel: string;
            code: string;
            number: string;
            digitCount: number;
            plateType: string;
            vehicleType: string;
            flag1: string;
            flag2: string;
            price: number;
            isNegotiable: boolean;
            currency: string;
            description: string;
            sellerName: string;
            sellerMobile: string;
            sellerEmail: string;
            plateImageUrl: string;
            uploadedPlateImageUrl: string;
            frontPreviewUrl: string;
            backPreviewUrl: string;
            expiresAt: Date;
            isVisible: boolean;
            validityDays: number;
            approvedAt: Date;
            approvedByUserId: number;
            publishedAt: Date;
            rejectionReason: string;
            status: import("../../common/numberplate/numberplate-listing.entity").NumberPlateListingStatus;
            createdAt: Date;
            updatedAt: Date;
        }[];
    }>;
    findMyListings(req: any): Promise<{
        status: boolean;
        message: string;
        data: {
            contact: {
                whatsappUrl: string;
                whatsappText: string;
            };
            isExpired: boolean;
            id: number;
            parentListingId: number;
            sellerUserId: number;
            emirate: string;
            emirateLabel: string;
            design: string;
            designLabel: string;
            code: string;
            number: string;
            digitCount: number;
            plateType: string;
            vehicleType: string;
            flag1: string;
            flag2: string;
            price: number;
            isNegotiable: boolean;
            currency: string;
            description: string;
            sellerName: string;
            sellerMobile: string;
            sellerEmail: string;
            plateImageUrl: string;
            uploadedPlateImageUrl: string;
            frontPreviewUrl: string;
            backPreviewUrl: string;
            expiresAt: Date;
            isVisible: boolean;
            validityDays: number;
            approvedAt: Date;
            approvedByUserId: number;
            publishedAt: Date;
            rejectionReason: string;
            status: import("../../common/numberplate/numberplate-listing.entity").NumberPlateListingStatus;
            createdAt: Date;
            updatedAt: Date;
        }[];
    }>;
    getConfig(): {
        status: boolean;
        message: string;
        data: Record<string, {
            label: string;
            designs: Record<string, {
                label: string;
                slug: string;
                codes: string[];
            }>;
        }>;
    };
    preview(query: NumberPlatePreviewQueryDto): {
        status: boolean;
        message: string;
        data: {
            vehicleType: string;
            imageUrl: string;
            emirate: string;
            emirateLabel: string;
            design: string;
            designLabel: string;
            slug: string;
            code: string;
            number: string;
            flag1: string;
            flag2: string;
            width: string;
        };
    };
    getCarAssets(): {
        status: boolean;
        data: {
            slug: string;
            label: string;
        }[];
    };
    carPreview(query: NumberPlateCarPreviewQueryDto): Promise<{
        status: boolean;
        message: string;
        data: any;
    }>;
    getListingCarPreview(id: number, req: any): Promise<{
        status: boolean;
        message: string;
        data: {
            id: number;
            plateImageUrl: string;
            frontPreviewUrl: string;
            backPreviewUrl: string;
            emirate: string;
            emirateLabel: string;
            code: string;
            number: string;
            plateType: string;
        };
    }>;
    findListing(id: number, req: any): Promise<{
        status: boolean;
        message: string;
        data: {
            contact: {
                whatsappUrl: string;
                whatsappText: string;
            };
            isExpired: boolean;
            id: number;
            parentListingId: number;
            sellerUserId: number;
            emirate: string;
            emirateLabel: string;
            design: string;
            designLabel: string;
            code: string;
            number: string;
            digitCount: number;
            plateType: string;
            vehicleType: string;
            flag1: string;
            flag2: string;
            price: number;
            isNegotiable: boolean;
            currency: string;
            description: string;
            sellerName: string;
            sellerMobile: string;
            sellerEmail: string;
            plateImageUrl: string;
            uploadedPlateImageUrl: string;
            frontPreviewUrl: string;
            backPreviewUrl: string;
            expiresAt: Date;
            isVisible: boolean;
            validityDays: number;
            approvedAt: Date;
            approvedByUserId: number;
            publishedAt: Date;
            rejectionReason: string;
            status: import("../../common/numberplate/numberplate-listing.entity").NumberPlateListingStatus;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    updateListing(id: number, body: UpdateNumberPlateListingDto, req: any): Promise<{
        status: boolean;
        message: string;
        data: {
            contact: {
                whatsappUrl: string;
                whatsappText: string;
            };
            isExpired: boolean;
            id: number;
            parentListingId: number;
            sellerUserId: number;
            emirate: string;
            emirateLabel: string;
            design: string;
            designLabel: string;
            code: string;
            number: string;
            digitCount: number;
            plateType: string;
            vehicleType: string;
            flag1: string;
            flag2: string;
            price: number;
            isNegotiable: boolean;
            currency: string;
            description: string;
            sellerName: string;
            sellerMobile: string;
            sellerEmail: string;
            plateImageUrl: string;
            uploadedPlateImageUrl: string;
            frontPreviewUrl: string;
            backPreviewUrl: string;
            expiresAt: Date;
            isVisible: boolean;
            validityDays: number;
            approvedAt: Date;
            approvedByUserId: number;
            publishedAt: Date;
            rejectionReason: string;
            status: import("../../common/numberplate/numberplate-listing.entity").NumberPlateListingStatus;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    markSold(id: number, body: MarkNumberPlateSoldDto, req: any): Promise<{
        status: boolean;
        message: string;
        data: {
            contact: {
                whatsappUrl: string;
                whatsappText: string;
            };
            isExpired: boolean;
            id: number;
            parentListingId: number;
            sellerUserId: number;
            emirate: string;
            emirateLabel: string;
            design: string;
            designLabel: string;
            code: string;
            number: string;
            digitCount: number;
            plateType: string;
            vehicleType: string;
            flag1: string;
            flag2: string;
            price: number;
            isNegotiable: boolean;
            currency: string;
            description: string;
            sellerName: string;
            sellerMobile: string;
            sellerEmail: string;
            plateImageUrl: string;
            uploadedPlateImageUrl: string;
            frontPreviewUrl: string;
            backPreviewUrl: string;
            expiresAt: Date;
            isVisible: boolean;
            validityDays: number;
            approvedAt: Date;
            approvedByUserId: number;
            publishedAt: Date;
            rejectionReason: string;
            status: import("../../common/numberplate/numberplate-listing.entity").NumberPlateListingStatus;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    updateListingStatus(id: number, body: UpdateNumberPlateListingStatusDto, req: any): Promise<{
        status: boolean;
        message: string;
        data: {
            contact: {
                whatsappUrl: string;
                whatsappText: string;
            };
            isExpired: boolean;
            id: number;
            parentListingId: number;
            sellerUserId: number;
            emirate: string;
            emirateLabel: string;
            design: string;
            designLabel: string;
            code: string;
            number: string;
            digitCount: number;
            plateType: string;
            vehicleType: string;
            flag1: string;
            flag2: string;
            price: number;
            isNegotiable: boolean;
            currency: string;
            description: string;
            sellerName: string;
            sellerMobile: string;
            sellerEmail: string;
            plateImageUrl: string;
            uploadedPlateImageUrl: string;
            frontPreviewUrl: string;
            backPreviewUrl: string;
            expiresAt: Date;
            isVisible: boolean;
            validityDays: number;
            approvedAt: Date;
            approvedByUserId: number;
            publishedAt: Date;
            rejectionReason: string;
            status: import("../../common/numberplate/numberplate-listing.entity").NumberPlateListingStatus;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    removeListing(id: number, req: any): Promise<{
        status: boolean;
        message: string;
        data: {
            contact: {
                whatsappUrl: string;
                whatsappText: string;
            };
            isExpired: boolean;
            id: number;
            parentListingId: number;
            sellerUserId: number;
            emirate: string;
            emirateLabel: string;
            design: string;
            designLabel: string;
            code: string;
            number: string;
            digitCount: number;
            plateType: string;
            vehicleType: string;
            flag1: string;
            flag2: string;
            price: number;
            isNegotiable: boolean;
            currency: string;
            description: string;
            sellerName: string;
            sellerMobile: string;
            sellerEmail: string;
            plateImageUrl: string;
            uploadedPlateImageUrl: string;
            frontPreviewUrl: string;
            backPreviewUrl: string;
            expiresAt: Date;
            isVisible: boolean;
            validityDays: number;
            approvedAt: Date;
            approvedByUserId: number;
            publishedAt: Date;
            rejectionReason: string;
            status: import("../../common/numberplate/numberplate-listing.entity").NumberPlateListingStatus;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
}
