import type { ApiKeyAuthContext } from "../common/auth/auth.types";
import { CheckoutSessionService } from "./checkout-session.service";
import { ConfirmPublicCheckoutSessionDto } from "./dto/confirm-public-checkout-session.dto";
import { CreateCheckoutSessionDto } from "./dto/create-checkout-session.dto";
export declare class CheckoutSessionController {
    private readonly service;
    constructor(service: CheckoutSessionService);
    create(auth: ApiKeyAuthContext, dto: CreateCheckoutSessionDto): Promise<{
        clientSecret: string;
        id: string;
        intentId: string;
        publicToken: string;
        url: string;
        status: import("@prisma/client").$Enums.CheckoutSessionStatus;
        returnUrl: string | null;
        cancelUrl: string | null;
        uiConfig: Record<string, unknown> | null;
        failedAttempts: number;
        expiresAt: Date;
        createdAt: Date;
    }>;
    findOne(auth: ApiKeyAuthContext, id: string): Promise<{
        id: string;
        intentId: string;
        publicToken: string;
        url: string;
        status: import("@prisma/client").$Enums.CheckoutSessionStatus;
        returnUrl: string | null;
        cancelUrl: string | null;
        uiConfig: Record<string, unknown> | null;
        failedAttempts: number;
        expiresAt: Date;
        createdAt: Date;
    }>;
}
export declare class PublicCheckoutSessionController {
    private readonly service;
    constructor(service: CheckoutSessionService);
    retrieveByToken(publicToken: string): Promise<{
        id: string;
        status: import("@prisma/client").$Enums.CheckoutSessionStatus;
        expiresAt: Date;
        amount: string;
        currency: string;
        country: string;
        description: string | null;
        merchantName: string;
        uiConfig: Record<string, unknown> | null;
        returnUrl: string | null;
        cancelUrl: string | null;
        customer: {
            email: string | null;
            name: string | null;
            docNumber: string | null;
            phone: string | null;
            country: string | null;
        } | null;
    }>;
    paymentMethodsByToken(publicToken: string): Promise<{
        platformId: string;
        name: string;
        method: import("@prisma/client").$Enums.PaymentMethod;
    }[]>;
    confirmByToken(publicToken: string, dto: ConfirmPublicCheckoutSessionDto): Promise<{
        status: import("@prisma/client").$Enums.PaymentIntentStatus;
        redirectUrl: string | null;
        qr: {} | null;
        returnUrl: string | null;
        cancelUrl: string | null;
    }>;
}
