import { type Link } from './commonTypes';
export interface PixCustomer {
    Name: string;
    Identity: string;
    IdentityType: 'CPF' | 'CNPJ';
}
/**
 * Detalhes do objeto Payment na requisição de criação de pagamento Pix.
 */
export interface PixPaymentDetailsRequest {
    /** Tipo do meio de pagamento (Sempre 'Pix') */
    Type: 'Pix';
    /** Valor do pedido em centavos */
    Amount: number;
}
/**
 * Payload completo para a requisição de criação de pagamento Pix.
 */
export interface PixPaymentRequest {
    MerchantOrderId: string;
    Customer: PixCustomer;
    Payment: PixPaymentDetailsRequest;
}
/**
 * Detalhes do objeto Payment na resposta de criação de pagamento Pix.
 */
export interface PixPaymentDetailsResponse {
    PaymentId: string;
    Type: 'Pix';
    /** ID da transação no adquirente (se houver) */
    AcquirerTransactionId?: string;
    /** Número Sequencial Único (NSU) */
    ProofOfSale?: string;
    /** QR Code em formato de imagem Base64 */
    QrCodeBase64Image: string;
    /** String do QR Code (Copia e Cola) */
    QrCodeString: string;
    /** Valor em centavos */
    Amount: number;
    /** Data/Hora em que a Cielo recebeu a transação (YYYY-MM-DD HH:MM:SS) */
    ReceivedDate: string;
    /** Status da transação (e.g., 12 = Pendente de Pagamento) */
    Status: number;
    ReturnCode: string;
    ReturnMessage: string;
}
/**
 * Resposta completa para a criação de pagamento Pix bem-sucedida (201 Created).
 */
export interface PixPaymentResponse {
    MerchantOrderId: string;
    Customer: {
        Name: string;
    };
    Payment: PixPaymentDetailsResponse;
}
/**
 * Resposta da operação de devolução Pix (PUT /1/sales/{PaymentId}/void).
 * Possui campos diferentes da resposta de void do cartão.
 */
export interface PixRefundResponse {
    /** Novo Status da transação (geralmente 12 - Pending Refund?) */
    Status: number;
    /** Código da razão (e.g., 0 para sucesso) */
    ReasonCode: number;
    /** Mensagem da razão (e.g., "Successful") */
    ReasonMessage: string;
    /** Código de retorno da operação de devolução (e.g., "0") */
    ReturnCode: string;
    /** Mensagem de retorno (e.g., "Reembolso solicitado com sucesso") */
    ReturnMessage: string;
    Links?: Link[];
}
