import { PrismaService } from '../../../prisma/prisma.service';
import { EncryptionService } from '../../../common/services/encryption.service';
import { ProductsService } from '../../commerce/services/products.service';
export declare class ShoppingFlowService {
    private readonly prisma;
    private readonly encryption;
    private readonly products;
    private readonly logger;
    constructor(prisma: PrismaService, encryption: EncryptionService, products: ProductsService);
    private config;
    launch(businessId: string, customerId: string, phone: string, mode?: 'basket' | 'consent' | 'search'): Promise<{
        text: string;
        payload: {
            type: "interactive";
            interactive: {
                type: string;
                body: {
                    text: string;
                };
                action: {
                    name: string;
                    parameters: {
                        flow_action_payload?: {
                            screen: string;
                            data: {
                                categories: {
                                    id: string;
                                    title: string;
                                }[];
                                featured?: any[] | undefined;
                                has_featured?: boolean | undefined;
                                selected_categories?: string[] | undefined;
                                message: string;
                            };
                        } | undefined;
                        flow_message_version: string;
                        flow_id: string | undefined;
                        flow_token: string;
                        flow_cta: string;
                        flow_action: string;
                    };
                };
            };
        };
    } | null>;
    needsConsent(businessId: string, customerId: string): Promise<boolean>;
    private finish;
    completion(businessId: string, customerId: string, phone: string, token: string, kind: 'consent' | 'search'): Promise<{
        kind: "consent";
        productId?: undefined;
        variantId?: undefined;
    } | {
        kind: "search";
        productId: any;
        variantId: any;
    } | null>;
    hostedWalletCheckout(businessId: string, phone: string, orderId: string): Promise<string | null>;
    cardCheckout(businessId: string, phone: string, orderId: string): Promise<string | null>;
    private accepted;
    private terms;
    private productOptions;
    private searchScreen;
    exchange(request: any): Promise<any>;
    private item;
    private add;
    private image;
}
