import { VisitanteComumInterface, SimboloInterface } from '../interfaces';
import { Construto } from './construto';
/**
 * Binário é uma estrutura com um operador e dois operandos: esquerda e direita.
 * Implementa as seguintes operações para Delégua e todos os dialetos:
 *
 * - `+` (Adição);
 * - `-` (Subtração);
 * - `*` (Multiplicação);
 * - `/` (Divisão);
 * - `%` (Módulo);
 *
 * Algumas outras operações podem ser suportadas de dialeto para dialeto,
 * como por exemplo:
 *
 * - `+=` (Adição com Atribuição);
 * - `-=` (Subtração com Atribuição);
 * - `*=` (Multiplicação com Atribuição);
 * - `/=` (Divisão com Atribuição);
 * - `%=` (Módulo com Atribuição);
 * - `**` (Exponenciação);
 * - `::` (Concatenação);
 * - `\` (Divisão inteira).
 */
export declare class Binario<TTipoSimbolo extends string = string> implements Construto {
    linha: number;
    hashArquivo: number;
    esquerda: Construto;
    operador: SimboloInterface<TTipoSimbolo>;
    direita: Construto;
    tipo: string;
    constructor(hashArquivo: number, esquerda: Construto, operador: SimboloInterface<TTipoSimbolo>, direita: Construto);
    /**
     * Dedução otimista de tipos para expressões binárias.
     * @returns O tipo deduzido.
     */
    protected deduzirTipo(): string;
    aceitar(visitante: VisitanteComumInterface): Promise<any>;
    paraTexto(): string;
    paraTextoSaida(): string;
}
//# sourceMappingURL=binario.d.ts.map