/**
 * Interface para o contato do pagador
 */
import { EFirebankWithdrawDetailsKey } from '../../enums';
import { IFirebankPaymentPost, IFirebankPaymentPostAddress, IFirebankPaymentPostContact, IFirebankPaymentPostPayer, IFirebankPaymentPostSplit, IFirebankPaymentPostTransaction } from '../../interfaces';
/**
 * Interface para o endereço do pagador
 */
export declare class FirebankPaymentPostAddressEntity implements IFirebankPaymentPostAddress {
    /** Cidade do endereço do cliente/pagador */
    city?: string;
    /** País do endereço do cliente/pagador */
    country?: string;
    /** Bairro do endereço do cliente/pagador */
    neighboor?: string;
    /** Número do endereço do cliente/pagador */
    number?: string;
    /** Estado do endereço do cliente/pagador */
    state?: string;
    /** Rua/logradouro do endereço do cliente/pagador */
    street?: string;
    /** CEP do endereço do cliente/pagador */
    zipCode?: string;
}
export declare class FirebankPaymentPostContactEntity implements IFirebankPaymentPostContact {
    /** E-mail de contato do cliente/pagador */
    mail?: string;
    /** Telefone de contato do cliente/pagador */
    phone?: string;
}
/**
 * Interface principal para o pagamento
 */
export declare class FirebankPaymentPostEntity implements IFirebankPaymentPost {
    /** Informações do pagador */
    payer: FirebankPaymentPostPayerEntity;
    /** Lista de beneficiários a receber um valor pré-configurado após a cobrança ser efetivamente paga */
    splits: FirebankPaymentPostSplitEntity[];
    /** Informações da transação */
    transaction: FirebankPaymentPostTransactionEntity;
    /** Tipo da operação. Sempre enviar "PIX" como valor padrão */
    type: 'PIX';
}
/**
 * Interface para o pagador
 */
export declare class FirebankPaymentPostPayerEntity implements IFirebankPaymentPostPayer {
    /** Endereço do pagador */
    address?: FirebankPaymentPostAddressEntity;
    /** Informações de contato do pagador */
    contact?: FirebankPaymentPostContactEntity;
    /** Documentação do cliente/pagador, CPF ou CNPJ */
    document: string;
    /** Nome do cliente/pagador */
    fullName: string;
}
/**
 * Interface para o split (beneficiário)
 */
export declare class FirebankPaymentPostSplitEntity implements IFirebankPaymentPostSplit {
    /**
     * Valor fixo a ser enviado.
     * Este valor pode ser somado automaticamente com o valor percentual (percent).
     * Este valor não pode ser maior do que o valor líquido recebido pela cobrança.
     */
    amount: number;
    /** CPF ou CNPJ do beneficiário */
    document: string;
    /** Identificador único para que possa ser usado em caso de alteração/cancelamento do pagamento split */
    externalId: string;
    /**
     * Valor em percentual a ser enviado. Por exemplo: caso a cobrança seja de R$10,00 (dez reais)
     * e seja informado o valor "10" no campo percent, então será considerado 10% sobre R$10,00, que é R$1,00.
     * Este valor pode ser somado automaticamente com o valor fixo (amount).
     * Este valor não pode ser maior do que o valor líquido recebido pela cobrança.
     */
    percent: number;
    /** Chave PIX do beneficiário */
    pixKey: string;
    /**
     * Tipo da chave PIX do beneficiário.
     * Podendo ser dos tipos: "RANDOM_KEY" (chave-aleatória), "DOCUMENT" (CPF ou CNPJ) ou "EMAIL" (e-mail)
     */
    pixKeyType: EFirebankWithdrawDetailsKey;
}
/**
 * Interface para a transação
 */
export declare class FirebankPaymentPostTransactionEntity implements IFirebankPaymentPostTransaction {
    /** Descrição da cobrança */
    description?: string;
    /** Data de expiração da cobrança */
    dueDate?: string;
    /** Identificador único para ser usado como rastreio das cobranças no envio do Webhook */
    externalId?: string;
    /** Valor da transação. Aceita valores quebrados, separados por ponto, como 123.45, representando R$123,45 */
    value: number;
}
