import { Root, Extension } from 'joi';

/**
 * Cria uma extensão joi que adiciona o tipo `document` com os métodos
 * `.cpf(message?)` e `.cnpj(message?)`. Ambos aceitam uma mensagem
 * customizada opcional que sobrescreve a padrão ('CPF inválido' /
 * 'CNPJ inválido') no ValidationError.
 *
 * @param joi - Instância do joi (versão 17+).
 * @returns Extension pronta para passar em `joi.extend`.
 *
 * @example
 * ```ts
 * import Joi from 'joi'
 * import { joiValidator } from 'cpf-cnpj-validator/joi'
 *
 * const joi = Joi.extend(joiValidator)
 *
 * // Mensagem padrão
 * const schema = joi.document().cnpj().required()
 * await schema.validateAsync('12ABC34501DE35') // '12ABC34501DE35'
 *
 * // Mensagem customizada (issue #32)
 * const custom = joi.document().cpf('CPF precisa ser válido!')
 * await custom.validateAsync('01283191283') // throws 'CPF precisa ser válido!'
 * ```
 */
declare const joiValidator: (joi: Root) => Extension;

export { joiValidator };
