import * as _horizon_js_integrations_core from '@horizon-js/integrations-core';
import { Source, CheckResult, Stream, HttpStream, IncrementalStream, SyncMode, RetryOptions, SyncState, ListingEntry as ListingEntry$1, SourceManifest, SourceSpec } from '@horizon-js/integrations-core';
import { z } from 'zod';
import { EntitySchema } from '@horizon-js/property-domain-schema';

/**
 * Tipos compartilhados do pacote @horizon-integrations/jetimob-crm.
 */
/**
 * Credenciais pra autenticar na API Jetimob.
 *
 * A Jetimob não usa header nem token OAuth — a autenticação é a própria
 * `webserviceKey` embutida no PATH da URL:
 * `https://api.jetimob.com/webservice/{webserviceKey}/imoveis`
 *
 * Obtida no painel Jetimob da imobiliária. É o único dado de auth necessário.
 *
 * > Nota: a API Jetimob também expõe um par chave-pública/chave-privada pra
 * > envio de leads. Quando o writer de leads for implementado, essas chaves
 * > entram aqui como campos opcionais.
 */
interface JetimobCredentials {
    readonly webserviceKey: string;
}

interface JetimobSourceOptions {
    /** URL base da API. Default: `https://api.jetimob.com`. */
    readonly baseUrl?: string;
}
/**
 * Source da Jetimob — implementação do contrato `Source<JetimobCredentials>`
 * do `@horizon-js/integrations-core`.
 *
 * Expõe:
 * - `manifest` — cartão declarativo (metadata, capabilities, knownIssues, streams)
 * - `spec` — JSON Schema das credenciais
 * - `check(config)` — valida a `webserviceKey` com o request mais barato possível
 * - `streams(config)` — retorna `[JetimobPropertyStream]`
 *
 * A Jetimob é só-leitura (por enquanto) — não implementa `writers()`.
 *
 * ## Uso
 *
 * ```ts
 * import { JetimobSource } from "@horizon-integrations/jetimob-crm"
 * import { SyncMode } from "@horizon-js/integrations-core"
 *
 * const source = new JetimobSource()
 *
 * // 1. Valida credenciais
 * const { ok } = await source.check({ webserviceKey: "..." })
 * if (!ok) throw new Error("webserviceKey inválida")
 *
 * // 2. Lê imóveis (streaming, paginação automática)
 * const [stream] = source.streams({ webserviceKey: "..." })
 * for await (const property of stream.readRecords(SyncMode.FULL_REFRESH)) {
 *   await db.properties.upsert(property)
 * }
 * ```
 *
 * Pra uso de alto nível (sem mexer com streams), veja as funções de
 * conveniência `fetchAll` / `getListing` / `fetchByRef` exportadas pelo pacote.
 */
declare class JetimobSource implements Source<JetimobCredentials> {
    private readonly options;
    readonly name = "jetimob";
    readonly manifest: _horizon_js_integrations_core.SourceManifest<JetimobCredentials>;
    readonly spec: _horizon_js_integrations_core.SourceSpec<JetimobCredentials>;
    constructor(options?: JetimobSourceOptions);
    check(config: JetimobCredentials): Promise<CheckResult>;
    streams(config: JetimobCredentials): Stream<unknown>[];
}

declare const HorizonPropertySchemaByJetimobZod: z.ZodObject<Omit<{
    currency: z.ZodDefault<z.ZodString>;
    unit_area: z.ZodDefault<z.ZodString>;
    unit_distance: z.ZodDefault<z.ZodEnum<["meters", "km"]>>;
    reference: z.ZodString;
    title: z.ZodString;
    description: z.ZodString;
    seo_slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_keywords: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    main_image: z.ZodOptional<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
    }, {
        md: string;
        sm: string;
        full: string;
    }>>;
    images: z.ZodArray<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
        cover: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }>, "many">;
    videos: z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        url?: string | null | undefined;
    }, {
        url?: string | null | undefined;
    }>, "many">;
    virtual_tours: z.ZodArray<z.ZodObject<{
        embed_url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        embed_url: string;
    }, {
        embed_url: string;
    }>, "many">;
    operacao: z.ZodArray<z.ZodEnum<["venda", "locacao", "temporada"]>, "many">;
    tipo: z.ZodString;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    vagas_garagem: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    lat: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    lng: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    corretor_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    corretor_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_key: z.ZodString;
    source_published_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    sync_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "main_image" | "images" | "videos" | "virtual_tours"> & {
    tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    numero_pessoas: z.ZodOptional<z.ZodNumber>;
    valor_diaria: z.ZodOptional<z.ZodNumber>;
    geo_aproximado: z.ZodOptional<z.ZodObject<{
        lat: z.ZodNumber;
        lng: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        lat: number;
        lng: number;
    }, {
        lat: number;
        lng: number;
    }>>;
    id_imovel: z.ZodOptional<z.ZodString>;
    finalidade: z.ZodOptional<z.ZodString>;
    mobiliado: z.ZodOptional<z.ZodBoolean>;
    caracteristicas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    plantas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNumber>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNumber>;
    andar: z.ZodOptional<z.ZodNumber>;
    financiavel: z.ZodOptional<z.ZodBoolean>;
    exclusividade: z.ZodOptional<z.ZodBoolean>;
    permuta: z.ZodOptional<z.ZodBoolean>;
    seguro_fianca: z.ZodOptional<z.ZodBoolean>;
    situacao: z.ZodOptional<z.ZodString>;
    status: z.ZodOptional<z.ZodString>;
    distancia_mar: z.ZodOptional<z.ZodNumber>;
    posicao: z.ZodOptional<z.ZodString>;
    posicao_solar: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    calendario_temporada: z.ZodOptional<z.ZodAny>;
    condominio_comodidades: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    condominio_tipo: z.ZodOptional<z.ZodString>;
    subcondominio_id: z.ZodOptional<z.ZodString>;
    condominio_fechado: z.ZodOptional<z.ZodBoolean>;
    entrega_ano: z.ZodOptional<z.ZodNumber>;
    entrega_mes: z.ZodOptional<z.ZodNumber>;
    tipo_construcao: z.ZodOptional<z.ZodString>;
    tipo_piso: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    periodicidade_iptu: z.ZodOptional<z.ZodString>;
    terreno_frente: z.ZodOptional<z.ZodNumber>;
    terreno_fundos: z.ZodOptional<z.ZodNumber>;
    terreno_esquerdo: z.ZodOptional<z.ZodNumber>;
    terreno_direita: z.ZodOptional<z.ZodNumber>;
    terreno_total: z.ZodOptional<z.ZodNumber>;
    rural_area_aravel: z.ZodOptional<z.ZodNumber>;
    rural_sedes: z.ZodOptional<z.ZodNumber>;
    rural_atividade: z.ZodOptional<z.ZodString>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<Omit<{
    currency: z.ZodDefault<z.ZodString>;
    unit_area: z.ZodDefault<z.ZodString>;
    unit_distance: z.ZodDefault<z.ZodEnum<["meters", "km"]>>;
    reference: z.ZodString;
    title: z.ZodString;
    description: z.ZodString;
    seo_slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_keywords: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    main_image: z.ZodOptional<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
    }, {
        md: string;
        sm: string;
        full: string;
    }>>;
    images: z.ZodArray<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
        cover: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }>, "many">;
    videos: z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        url?: string | null | undefined;
    }, {
        url?: string | null | undefined;
    }>, "many">;
    virtual_tours: z.ZodArray<z.ZodObject<{
        embed_url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        embed_url: string;
    }, {
        embed_url: string;
    }>, "many">;
    operacao: z.ZodArray<z.ZodEnum<["venda", "locacao", "temporada"]>, "many">;
    tipo: z.ZodString;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    vagas_garagem: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    lat: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    lng: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    corretor_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    corretor_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_key: z.ZodString;
    source_published_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    sync_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "main_image" | "images" | "videos" | "virtual_tours"> & {
    tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    numero_pessoas: z.ZodOptional<z.ZodNumber>;
    valor_diaria: z.ZodOptional<z.ZodNumber>;
    geo_aproximado: z.ZodOptional<z.ZodObject<{
        lat: z.ZodNumber;
        lng: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        lat: number;
        lng: number;
    }, {
        lat: number;
        lng: number;
    }>>;
    id_imovel: z.ZodOptional<z.ZodString>;
    finalidade: z.ZodOptional<z.ZodString>;
    mobiliado: z.ZodOptional<z.ZodBoolean>;
    caracteristicas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    plantas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNumber>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNumber>;
    andar: z.ZodOptional<z.ZodNumber>;
    financiavel: z.ZodOptional<z.ZodBoolean>;
    exclusividade: z.ZodOptional<z.ZodBoolean>;
    permuta: z.ZodOptional<z.ZodBoolean>;
    seguro_fianca: z.ZodOptional<z.ZodBoolean>;
    situacao: z.ZodOptional<z.ZodString>;
    status: z.ZodOptional<z.ZodString>;
    distancia_mar: z.ZodOptional<z.ZodNumber>;
    posicao: z.ZodOptional<z.ZodString>;
    posicao_solar: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    calendario_temporada: z.ZodOptional<z.ZodAny>;
    condominio_comodidades: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    condominio_tipo: z.ZodOptional<z.ZodString>;
    subcondominio_id: z.ZodOptional<z.ZodString>;
    condominio_fechado: z.ZodOptional<z.ZodBoolean>;
    entrega_ano: z.ZodOptional<z.ZodNumber>;
    entrega_mes: z.ZodOptional<z.ZodNumber>;
    tipo_construcao: z.ZodOptional<z.ZodString>;
    tipo_piso: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    periodicidade_iptu: z.ZodOptional<z.ZodString>;
    terreno_frente: z.ZodOptional<z.ZodNumber>;
    terreno_fundos: z.ZodOptional<z.ZodNumber>;
    terreno_esquerdo: z.ZodOptional<z.ZodNumber>;
    terreno_direita: z.ZodOptional<z.ZodNumber>;
    terreno_total: z.ZodOptional<z.ZodNumber>;
    rural_area_aravel: z.ZodOptional<z.ZodNumber>;
    rural_sedes: z.ZodOptional<z.ZodNumber>;
    rural_atividade: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<Omit<{
    currency: z.ZodDefault<z.ZodString>;
    unit_area: z.ZodDefault<z.ZodString>;
    unit_distance: z.ZodDefault<z.ZodEnum<["meters", "km"]>>;
    reference: z.ZodString;
    title: z.ZodString;
    description: z.ZodString;
    seo_slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_keywords: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    main_image: z.ZodOptional<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
    }, {
        md: string;
        sm: string;
        full: string;
    }>>;
    images: z.ZodArray<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
        cover: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }>, "many">;
    videos: z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        url?: string | null | undefined;
    }, {
        url?: string | null | undefined;
    }>, "many">;
    virtual_tours: z.ZodArray<z.ZodObject<{
        embed_url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        embed_url: string;
    }, {
        embed_url: string;
    }>, "many">;
    operacao: z.ZodArray<z.ZodEnum<["venda", "locacao", "temporada"]>, "many">;
    tipo: z.ZodString;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    vagas_garagem: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    lat: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    lng: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    corretor_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    corretor_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_key: z.ZodString;
    source_published_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    sync_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "main_image" | "images" | "videos" | "virtual_tours"> & {
    tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    numero_pessoas: z.ZodOptional<z.ZodNumber>;
    valor_diaria: z.ZodOptional<z.ZodNumber>;
    geo_aproximado: z.ZodOptional<z.ZodObject<{
        lat: z.ZodNumber;
        lng: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        lat: number;
        lng: number;
    }, {
        lat: number;
        lng: number;
    }>>;
    id_imovel: z.ZodOptional<z.ZodString>;
    finalidade: z.ZodOptional<z.ZodString>;
    mobiliado: z.ZodOptional<z.ZodBoolean>;
    caracteristicas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    plantas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNumber>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNumber>;
    andar: z.ZodOptional<z.ZodNumber>;
    financiavel: z.ZodOptional<z.ZodBoolean>;
    exclusividade: z.ZodOptional<z.ZodBoolean>;
    permuta: z.ZodOptional<z.ZodBoolean>;
    seguro_fianca: z.ZodOptional<z.ZodBoolean>;
    situacao: z.ZodOptional<z.ZodString>;
    status: z.ZodOptional<z.ZodString>;
    distancia_mar: z.ZodOptional<z.ZodNumber>;
    posicao: z.ZodOptional<z.ZodString>;
    posicao_solar: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    calendario_temporada: z.ZodOptional<z.ZodAny>;
    condominio_comodidades: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    condominio_tipo: z.ZodOptional<z.ZodString>;
    subcondominio_id: z.ZodOptional<z.ZodString>;
    condominio_fechado: z.ZodOptional<z.ZodBoolean>;
    entrega_ano: z.ZodOptional<z.ZodNumber>;
    entrega_mes: z.ZodOptional<z.ZodNumber>;
    tipo_construcao: z.ZodOptional<z.ZodString>;
    tipo_piso: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    periodicidade_iptu: z.ZodOptional<z.ZodString>;
    terreno_frente: z.ZodOptional<z.ZodNumber>;
    terreno_fundos: z.ZodOptional<z.ZodNumber>;
    terreno_esquerdo: z.ZodOptional<z.ZodNumber>;
    terreno_direita: z.ZodOptional<z.ZodNumber>;
    terreno_total: z.ZodOptional<z.ZodNumber>;
    rural_area_aravel: z.ZodOptional<z.ZodNumber>;
    rural_sedes: z.ZodOptional<z.ZodNumber>;
    rural_atividade: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>;
type HorizonPropertySchemaByJetimobType = z.infer<typeof HorizonPropertySchemaByJetimobZod>;
declare const validateHorizonPropertySchemaByJetimob: (data: unknown) => HorizonPropertySchemaByJetimobType;
declare const safeValidateHorizonPropertySchemaByJetimob: (data: unknown) => z.SafeParseReturnType<z.objectInputType<Omit<{
    currency: z.ZodDefault<z.ZodString>;
    unit_area: z.ZodDefault<z.ZodString>;
    unit_distance: z.ZodDefault<z.ZodEnum<["meters", "km"]>>;
    reference: z.ZodString;
    title: z.ZodString;
    description: z.ZodString;
    seo_slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_keywords: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    main_image: z.ZodOptional<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
    }, {
        md: string;
        sm: string;
        full: string;
    }>>;
    images: z.ZodArray<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
        cover: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }>, "many">;
    videos: z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        url?: string | null | undefined;
    }, {
        url?: string | null | undefined;
    }>, "many">;
    virtual_tours: z.ZodArray<z.ZodObject<{
        embed_url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        embed_url: string;
    }, {
        embed_url: string;
    }>, "many">;
    operacao: z.ZodArray<z.ZodEnum<["venda", "locacao", "temporada"]>, "many">;
    tipo: z.ZodString;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    vagas_garagem: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    lat: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    lng: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    corretor_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    corretor_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_key: z.ZodString;
    source_published_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    sync_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "main_image" | "images" | "videos" | "virtual_tours"> & {
    tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    numero_pessoas: z.ZodOptional<z.ZodNumber>;
    valor_diaria: z.ZodOptional<z.ZodNumber>;
    geo_aproximado: z.ZodOptional<z.ZodObject<{
        lat: z.ZodNumber;
        lng: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        lat: number;
        lng: number;
    }, {
        lat: number;
        lng: number;
    }>>;
    id_imovel: z.ZodOptional<z.ZodString>;
    finalidade: z.ZodOptional<z.ZodString>;
    mobiliado: z.ZodOptional<z.ZodBoolean>;
    caracteristicas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    plantas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNumber>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNumber>;
    andar: z.ZodOptional<z.ZodNumber>;
    financiavel: z.ZodOptional<z.ZodBoolean>;
    exclusividade: z.ZodOptional<z.ZodBoolean>;
    permuta: z.ZodOptional<z.ZodBoolean>;
    seguro_fianca: z.ZodOptional<z.ZodBoolean>;
    situacao: z.ZodOptional<z.ZodString>;
    status: z.ZodOptional<z.ZodString>;
    distancia_mar: z.ZodOptional<z.ZodNumber>;
    posicao: z.ZodOptional<z.ZodString>;
    posicao_solar: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    calendario_temporada: z.ZodOptional<z.ZodAny>;
    condominio_comodidades: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    condominio_tipo: z.ZodOptional<z.ZodString>;
    subcondominio_id: z.ZodOptional<z.ZodString>;
    condominio_fechado: z.ZodOptional<z.ZodBoolean>;
    entrega_ano: z.ZodOptional<z.ZodNumber>;
    entrega_mes: z.ZodOptional<z.ZodNumber>;
    tipo_construcao: z.ZodOptional<z.ZodString>;
    tipo_piso: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    periodicidade_iptu: z.ZodOptional<z.ZodString>;
    terreno_frente: z.ZodOptional<z.ZodNumber>;
    terreno_fundos: z.ZodOptional<z.ZodNumber>;
    terreno_esquerdo: z.ZodOptional<z.ZodNumber>;
    terreno_direita: z.ZodOptional<z.ZodNumber>;
    terreno_total: z.ZodOptional<z.ZodNumber>;
    rural_area_aravel: z.ZodOptional<z.ZodNumber>;
    rural_sedes: z.ZodOptional<z.ZodNumber>;
    rural_atividade: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectOutputType<Omit<{
    currency: z.ZodDefault<z.ZodString>;
    unit_area: z.ZodDefault<z.ZodString>;
    unit_distance: z.ZodDefault<z.ZodEnum<["meters", "km"]>>;
    reference: z.ZodString;
    title: z.ZodString;
    description: z.ZodString;
    seo_slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    seo_keywords: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    main_image: z.ZodOptional<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
    }, {
        md: string;
        sm: string;
        full: string;
    }>>;
    images: z.ZodArray<z.ZodObject<{
        md: z.ZodString;
        sm: z.ZodString;
        full: z.ZodString;
        cover: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }, {
        md: string;
        sm: string;
        full: string;
        cover: boolean;
    }>, "many">;
    videos: z.ZodArray<z.ZodObject<{
        url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        url?: string | null | undefined;
    }, {
        url?: string | null | undefined;
    }>, "many">;
    virtual_tours: z.ZodArray<z.ZodObject<{
        embed_url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        embed_url: string;
    }, {
        embed_url: string;
    }>, "many">;
    operacao: z.ZodArray<z.ZodEnum<["venda", "locacao", "temporada"]>, "many">;
    tipo: z.ZodString;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    vagas_garagem: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    lat: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    lng: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    corretor_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    corretor_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_key: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_key: z.ZodString;
    source_published_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    source_updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    sync_hash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "main_image" | "images" | "videos" | "virtual_tours"> & {
    tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    numero_pessoas: z.ZodOptional<z.ZodNumber>;
    valor_diaria: z.ZodOptional<z.ZodNumber>;
    geo_aproximado: z.ZodOptional<z.ZodObject<{
        lat: z.ZodNumber;
        lng: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        lat: number;
        lng: number;
    }, {
        lat: number;
        lng: number;
    }>>;
    id_imovel: z.ZodOptional<z.ZodString>;
    finalidade: z.ZodOptional<z.ZodString>;
    mobiliado: z.ZodOptional<z.ZodBoolean>;
    caracteristicas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    plantas: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNumber>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNumber>;
    andar: z.ZodOptional<z.ZodNumber>;
    financiavel: z.ZodOptional<z.ZodBoolean>;
    exclusividade: z.ZodOptional<z.ZodBoolean>;
    permuta: z.ZodOptional<z.ZodBoolean>;
    seguro_fianca: z.ZodOptional<z.ZodBoolean>;
    situacao: z.ZodOptional<z.ZodString>;
    status: z.ZodOptional<z.ZodString>;
    distancia_mar: z.ZodOptional<z.ZodNumber>;
    posicao: z.ZodOptional<z.ZodString>;
    posicao_solar: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    calendario_temporada: z.ZodOptional<z.ZodAny>;
    condominio_comodidades: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    condominio_tipo: z.ZodOptional<z.ZodString>;
    subcondominio_id: z.ZodOptional<z.ZodString>;
    condominio_fechado: z.ZodOptional<z.ZodBoolean>;
    entrega_ano: z.ZodOptional<z.ZodNumber>;
    entrega_mes: z.ZodOptional<z.ZodNumber>;
    tipo_construcao: z.ZodOptional<z.ZodString>;
    tipo_piso: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    periodicidade_iptu: z.ZodOptional<z.ZodString>;
    terreno_frente: z.ZodOptional<z.ZodNumber>;
    terreno_fundos: z.ZodOptional<z.ZodNumber>;
    terreno_esquerdo: z.ZodOptional<z.ZodNumber>;
    terreno_direita: z.ZodOptional<z.ZodNumber>;
    terreno_total: z.ZodOptional<z.ZodNumber>;
    rural_area_aravel: z.ZodOptional<z.ZodNumber>;
    rural_sedes: z.ZodOptional<z.ZodNumber>;
    rural_atividade: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>;

interface JetimobPropertyStreamOptions {
    /** URL base da API. Default: `https://api.jetimob.com`. */
    readonly baseUrl?: string;
    /** Timeout por request HTTP em ms. Default: `30_000`. */
    readonly requestTimeoutMs?: number;
    /** Tamanho de página pro endpoint /imoveis. Default: `200`. */
    readonly pageSize?: number;
}
/**
 * Stream de imóveis da Jetimob.
 *
 * Estende `HttpStream<T>` do `@horizon-js/integrations-core` — a API Jetimob v4
 * pagina de verdade (`?page=&pageSize=`, resposta traz `totalPages`), então o
 * loop de paginação automático do `HttpStream` se aplica.
 *
 * ## A API Jetimob — o que foi testado e confirmado
 *
 * - **`/imoveis`** — endpoint pesado: cada imóvel traz ~96 campos (~9.5KB).
 *   **Não tem** parâmetro de seleção de campos (`fields`/`campos`/etc — JET-005).
 * - **`/imoveis-ativos`** — endpoint LEVE: devolve só os `id_imovel` ativos
 *   numa tacada (~0.3s, ~9KB pros 1000+ imóveis). `getListing()` usa este.
 * - **`?start={unix}`** — filtra `/imoveis` por data de atualização server-side.
 *   `readRecords(INCREMENTAL)` usa este → traz só o delta, sem baixar tudo.
 * - **`?id=` vs `?codigos=`** — `id` filtra por `id_imovel`; `codigos` filtra
 *   por `codigo` (são diferentes — JET-002). `fetchByRef` aceita ambos.
 *
 * ## Peculiaridades de implementação (ver `jetimobManifest.knownIssues`)
 *
 * - **Auth no PATH**: a `webserviceKey` vai embutida na URL
 *   (`/webservice/{key}/imoveis`), não em header nem query — por isso entra no
 *   `urlBase`, e não há `AuthStrategy` dedicada.
 * - **Envelope `{ data }`** (JET-001): `parseResponse` extrai `body.data`.
 * - **`readRecords` defensivo**: o `readRecords` default do `HttpStream` não
 *   trata erro de conversão — um record inválido derrubaria o batch. Aqui é
 *   sobrescrito pra pular records que falham validação Zod (loga warning),
 *   na filosofia Airbyte (bad record ≠ falha de sync).
 * - **Retry** (JET-006): a API devolve 502 transiente; `retryOptions` re-tenta.
 */
declare class JetimobPropertyStream extends HttpStream<HorizonPropertySchemaByJetimobType> implements IncrementalStream<HorizonPropertySchemaByJetimobType> {
    readonly name = "properties";
    readonly supportedSyncModes: SyncMode[];
    readonly cursorField = "source_updated_at";
    readonly primaryKey: string[];
    readonly requestTimeoutMs: number;
    /**
     * Retry com backoff exponencial pra erros transientes (5xx/429/timeout).
     * A API Jetimob devolve 502 Bad Gateway esporádico (JET-006). `HttpStream.doRequest`
     * aplica este policy automaticamente; `getListing`/`fetchByRef`/`probe` aplicam via `retry()`.
     */
    readonly retryOptions: RetryOptions;
    private readonly webserviceKey;
    private readonly base;
    private readonly pageSize;
    constructor(credentials: JetimobCredentials, options?: JetimobPropertyStreamOptions);
    /** A `webserviceKey` é a auth — vai no path da URL base. */
    get urlBase(): string;
    path(): string;
    requestParams(context: {
        state?: SyncState;
        nextPageToken?: unknown;
    }): Record<string, string>;
    /** API v4 retorna `{ total, page, pageSize, totalPages, data: [...] }` (JET-001). */
    parseResponse(body: unknown): unknown[];
    /** Próxima página via metadados do envelope. `undefined` encerra o loop. */
    nextPageToken(response: {
        body: unknown;
        headers: Record<string, string>;
        status: number;
    }): unknown;
    convertRecord(raw: unknown): HorizonPropertySchemaByJetimobType;
    getJsonSchema(): Record<string, unknown>;
    /** Mapeia status HTTP da Jetimob pros FailureType corretos. */
    protected onHttpError(response: Response): Promise<Error>;
    /**
     * Itera os imóveis **crus** (sem conversão) página por página, seguindo a
     * paginação automática do `HttpStream`. Base de `readRecords` e `fetchRaw`.
     *
     * Quando `state` é passado (INCREMENTAL), `requestParams` injeta `?start={unix}`
     * e a própria API devolve só o delta — a paginação fica curta.
     */
    private iterateRaw;
    /**
     * Retorna todos os imóveis **crus** (array, sem conversão). Útil pra
     * profiling, debug, ou pra consumers que querem converter em lote com
     * `parseResponseDefensive` do core. Espelha `Si9PropertyStream.fetchRaw()`.
     */
    fetchRaw(): Promise<unknown[]>;
    readRecords(syncMode: SyncMode, state?: SyncState): AsyncGenerator<HorizonPropertySchemaByJetimobType, void, undefined>;
    /**
     * Avança o cursor incremental a partir de um record lido.
     * Cursor = maior `source_updated_at` visto.
     */
    getUpdatedState(currentState: SyncState, record: HorizonPropertySchemaByJetimobType): SyncState;
    /**
     * Lista leve `[{ ref, updatedAt }]`. Usa o endpoint **`/imoveis-ativos`**, que
     * devolve só os `id_imovel` ativos numa única resposta (~0.3s, ~9KB).
     *
     * Notas (JET-002):
     * - `ref` = `id_imovel` (não o `codigo`). É o que `/imoveis-ativos` fornece e
     *   o que `?id=` consome. O converter expõe `id_imovel` como campo extra.
     * - `updatedAt` é sempre `null` — `/imoveis-ativos` não traz timestamp. Pra
     *   delta com data, use `readRecords(INCREMENTAL)` (que filtra via `?start`).
     */
    getListing(): Promise<ListingEntry$1[]>;
    /**
     * Busca UM imóvel pelo `ref`. A Jetimob não tem endpoint individual — usa o
     * filtro no endpoint de lista. Tenta `?id={ref}` primeiro (pareia com o
     * `id_imovel` que `getListing` devolve) e, se não achar, tenta `?codigos={ref}`.
     * Retorna `null` se nenhum dos dois encontrar.
     */
    fetchByRef(ref: string): Promise<HorizonPropertySchemaByJetimobType | null>;
    /** Busca 1 imóvel por um filtro de query (`id=...` ou `codigos=...`). */
    private fetchOne;
    /**
     * Valida a credencial fazendo o request mais barato possível
     * (`/imoveis-ativos`, ~9KB). Lança `SyncError` se a `webserviceKey` for
     * inválida. Usado por `JetimobSource.check()`.
     */
    probe(): Promise<void>;
    private buildHttpError;
}

/**
 * Manifest declarativo do JetimobSource — cartão de identidade completo.
 *
 * Consumer/IA lê daqui pra entender 100% do adapter sem ler código:
 * capabilities da API, issues conhecidos, streams oferecidos.
 *
 * @see {@link https://api.jetimob.com | API Jetimob}
 */
declare const jetimobManifest: SourceManifest<JetimobCredentials>;

/**
 * Spec da configuração do JetimobSource — declara o shape das credenciais
 * aceitas. JSON Schema draft-07, inspirado no `spec.json` do Airbyte.
 *
 * Usado pelo hub (UI de setup) e pela validação em runtime.
 */
declare const jetimobSpec: SourceSpec<JetimobCredentials>;

interface FetchConfig {
    credentials: JetimobCredentials;
    /** URL base da API. Default: `https://api.jetimob.com`. */
    baseUrl?: string;
    /** Tamanho de página. Default: `100`. */
    pageSize?: number;
}
interface FetchAllResult {
    properties: HorizonPropertySchemaByJetimobType[];
    /** Imóveis que falharam validação Zod — não derrubam o batch. */
    errors: string[];
}
interface ListingEntry {
    ref: string;
    /** Data de última atualização no CRM (ISO 8601), ou `null` se ausente. */
    updatedAt: string | null;
}
/**
 * Baixa todos os imóveis da conta Jetimob e converte pro formato Horizon.
 * Imóveis que falharem validação Zod ficam em `errors` — não derrubam o batch.
 */
declare function fetchAll(config: FetchConfig): Promise<FetchAllResult>;
/**
 * Retorna a lista leve `{ ref, updatedAt }[]` de todos os imóveis.
 * Usado pelo orquestrador pra calcular delta sem baixar o payload completo.
 */
declare function getListing(config: FetchConfig): Promise<ListingEntry[]>;
/**
 * Busca um imóvel específico pelo código (`ref`). Retorna `null` se não existir.
 */
declare function fetchByRef(config: FetchConfig, ref: string): Promise<HorizonPropertySchemaByJetimobType | null>;
interface PropertyDownloaderConfig {
    credentials: JetimobCredentials;
    baseUrl?: string;
    pageSize?: number;
}
/**
 * Cliente com config reusável entre chamadas. Wrapper fino sobre as funções
 * `fetchAll` / `getListing` / `fetchByRef`.
 */
declare class PropertyDownloader {
    private readonly config;
    constructor(config: PropertyDownloaderConfig);
    fetchAll(): Promise<FetchAllResult>;
    getListing(): Promise<ListingEntry[]>;
    fetchByRef(ref: string): Promise<HorizonPropertySchemaByJetimobType | null>;
}

declare const JetimobPropertySchemaSchema: z.ZodObject<{
    codigo: z.ZodString;
    titulo_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    observacoes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    descricao_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    contrato: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    subtipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    situacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque_fim: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    exclusividade: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    financiavel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    permuta: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    seguro_fianca: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    mobiliado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_venda_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_temporada: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_temporada_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    garagens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
    endereco_numero_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    latitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    longitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    geoposicionamento_visivel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_imovel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_estado: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_cidade: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_bairro: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_subcondominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_corretor: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    distancia_mar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    tipo_construcao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo_piso: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    entrega_ano: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    entrega_mes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    posicao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    posicao_solar: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tags: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    terreno_frente: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_fundos: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_esquerdo: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_direita: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_total: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    medida_terreno_total: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    numero_pessoas: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    periodicidade_iptu: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_fechado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_comodidades: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
    imovel_comodidades: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    rural: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        atividade_rural: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        rural_sedes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
        rural_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        medida_total_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }>>>;
    calendario_temporada: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodAny, "many">]>>>;
    meta_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    imagens: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">>, "many">>>;
    videos: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    plantas: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    tour360: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    medida: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_cadastro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_update: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_atualizacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    codigo: z.ZodString;
    titulo_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    observacoes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    descricao_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    contrato: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    subtipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    situacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque_fim: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    exclusividade: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    financiavel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    permuta: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    seguro_fianca: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    mobiliado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_venda_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_temporada: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_temporada_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    garagens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
    endereco_numero_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    latitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    longitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    geoposicionamento_visivel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_imovel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_estado: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_cidade: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_bairro: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_subcondominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_corretor: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    distancia_mar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    tipo_construcao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo_piso: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    entrega_ano: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    entrega_mes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    posicao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    posicao_solar: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tags: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    terreno_frente: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_fundos: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_esquerdo: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_direita: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_total: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    medida_terreno_total: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    numero_pessoas: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    periodicidade_iptu: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_fechado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_comodidades: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
    imovel_comodidades: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    rural: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        atividade_rural: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        rural_sedes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
        rural_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        medida_total_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }>>>;
    calendario_temporada: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodAny, "many">]>>>;
    meta_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    imagens: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">>, "many">>>;
    videos: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    plantas: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    tour360: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    medida: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_cadastro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_update: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_atualizacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    codigo: z.ZodString;
    titulo_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    observacoes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    descricao_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    contrato: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    subtipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    situacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque_fim: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    exclusividade: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    financiavel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    permuta: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    seguro_fianca: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    mobiliado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_venda_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_temporada: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_temporada_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    garagens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
    endereco_numero_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    latitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    longitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    geoposicionamento_visivel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_imovel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_estado: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_cidade: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_bairro: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_subcondominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_corretor: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    distancia_mar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    tipo_construcao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo_piso: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    entrega_ano: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    entrega_mes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    posicao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    posicao_solar: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tags: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    terreno_frente: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_fundos: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_esquerdo: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_direita: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_total: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    medida_terreno_total: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    numero_pessoas: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    periodicidade_iptu: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_fechado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_comodidades: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
    imovel_comodidades: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    rural: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        atividade_rural: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        rural_sedes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
        rural_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        medida_total_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }>>>;
    calendario_temporada: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodAny, "many">]>>>;
    meta_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    imagens: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">>, "many">>>;
    videos: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    plantas: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    tour360: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    medida: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_cadastro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_update: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_atualizacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.ZodTypeAny, "passthrough">>;
type JetimobPropertySchema = z.infer<typeof JetimobPropertySchemaSchema>;
declare const validateJetimobPropertySchema: (data: unknown) => JetimobPropertySchema;
declare const safeValidateJetimobPropertySchema: (data: unknown) => z.SafeParseReturnType<z.objectInputType<{
    codigo: z.ZodString;
    titulo_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    observacoes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    descricao_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    contrato: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    subtipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    situacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque_fim: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    exclusividade: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    financiavel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    permuta: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    seguro_fianca: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    mobiliado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_venda_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_temporada: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_temporada_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    garagens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
    endereco_numero_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    latitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    longitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    geoposicionamento_visivel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_imovel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_estado: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_cidade: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_bairro: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_subcondominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_corretor: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    distancia_mar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    tipo_construcao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo_piso: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    entrega_ano: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    entrega_mes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    posicao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    posicao_solar: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tags: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    terreno_frente: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_fundos: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_esquerdo: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_direita: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_total: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    medida_terreno_total: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    numero_pessoas: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    periodicidade_iptu: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_fechado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_comodidades: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
    imovel_comodidades: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    rural: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        atividade_rural: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        rural_sedes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
        rural_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        medida_total_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }>>>;
    calendario_temporada: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodAny, "many">]>>>;
    meta_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    imagens: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">>, "many">>>;
    videos: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    plantas: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    tour360: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    medida: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_cadastro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_update: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_atualizacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.ZodTypeAny, "passthrough">, z.objectOutputType<{
    codigo: z.ZodString;
    titulo_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    observacoes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    descricao_anuncio: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    contrato: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    subtipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    situacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    destaque_fim: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    exclusividade: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    financiavel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    permuta: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    seguro_fianca: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    mobiliado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_venda: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_venda_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_locacao: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_locacao_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_temporada: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_temporada_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_condominio_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_iptu: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_iptu_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    valor_seguro_incendio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    valor_taxa_limpeza: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    dormitorios: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    suites: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    banheiros: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    garagens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_total: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_privativa: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    area_util: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    andar_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cep: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_estado_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_cidade: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_cidade_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_bairro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_bairro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_zona: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_logradouro_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_numero: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
    endereco_numero_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_complemento: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_complemento_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    endereco_referencia: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    endereco_referencia_visivel: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    latitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    longitude: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    geoposicionamento_visivel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_imovel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_estado: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_cidade: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_bairro: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_condominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_subcondominio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    id_corretor: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    distancia_mar: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    tipo_construcao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tipo_piso: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    entrega_ano: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    entrega_mes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    posicao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    posicao_solar: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    tags: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    terreno_frente: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_fundos: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_esquerdo: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_direita: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    terreno_total: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
    medida_terreno_total: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    numero_pessoas: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    periodicidade_iptu: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_fechado: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodBoolean, z.ZodNumber]>>>;
    condominio_nome: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_tipo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    condominio_comodidades: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
    imovel_comodidades: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    rural: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        atividade_rural: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        rural_sedes: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodNumber]>>>;
        rural_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        medida_total_area_aravel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }, {
        rural_area_aravel?: number | null | undefined;
        rural_sedes?: string | number | null | undefined;
        atividade_rural?: string | null | undefined;
        medida_total_area_aravel?: string | null | undefined;
    }>>>;
    calendario_temporada: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodAny, "many">]>>>;
    meta_description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    imagens: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        link: z.ZodString;
        titulo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        link_thumb: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.ZodTypeAny, "passthrough">>, "many">>>;
    videos: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    plantas: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    tour360: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny, "many">>>;
    medida: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_cadastro: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_update: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    data_atualizacao: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, z.ZodTypeAny, "passthrough">>;

/**
 * Converte campos do schema base (horizon-property-schema-base.json)
 * Esses são os campos padrão que existem em todos os property models
 */
declare function convertBaseFields(imovel: JetimobPropertySchema): Partial<HorizonPropertySchemaByJetimobType>;

/**
 * Converte campos específicos do Jetimob (não existem no schema base)
 * Esses são os campos extras que foram adicionados especificamente para o Jetimob
 */
declare function convertExtendedFields(imovel: JetimobPropertySchema): Partial<HorizonPropertySchemaByJetimobType>;

/**
 * Converte um imóvel bruto do formato Jetimob para o formato Horizon Property.
 *
 * Valida a entrada com Zod (safe parse) e lança erro se inválida.
 * Adiciona `sync_hash` determinístico (SHA-256 64 bits) — usado pelo consumer
 * pra detectar mudanças entre syncs.
 */
declare function convertJetimobPropertyToHorizon(rawImovel: unknown): HorizonPropertySchemaByJetimobType;

/**
 * Jetimob Extended Schema - v2.3.0
 *
 * Schema estendido do Horizon Base com campos específicos do Jetimob CRM
 * Formato Entity Schema v2.0.0 com tipagens completas
 *
 * Total: 86 campos (47 base Horizon + 39 extras Jetimob)
 * - Campos base: importados de @horizon-js/property-domain-schema
 * - Campos extras: específicos do Jetimob CRM
 *
 * ⚠️ Este arquivo DEVE espelhar horizon-property-schema-by-jetimob.zod.ts —
 * todo campo validado no Zod precisa estar declarado aqui. O teste
 * __dev__/tests/schema-consistency.test.ts trava essa regra.
 */

declare const HorizonPropertySchemaByJetimob: EntitySchema;

export { type FetchAllResult, type FetchConfig, HorizonPropertySchemaByJetimob, type HorizonPropertySchemaByJetimobType, HorizonPropertySchemaByJetimobZod, type JetimobCredentials, type JetimobPropertySchema, JetimobPropertySchemaSchema as JetimobPropertySchemaZod, JetimobPropertyStream, type JetimobPropertyStreamOptions, JetimobSource, type JetimobSourceOptions, type ListingEntry, PropertyDownloader, type PropertyDownloaderConfig, convertBaseFields, convertExtendedFields, convertJetimobPropertyToHorizon, fetchAll, fetchByRef, getListing, jetimobManifest, jetimobSpec, safeValidateHorizonPropertySchemaByJetimob, safeValidateJetimobPropertySchema, validateHorizonPropertySchemaByJetimob, validateJetimobPropertySchema };
