import { Construto, FuncaoConstruto, Leia } from '../../construtos';
import { Escreva, Declaracao, Se, Enquanto, Para, Escolha, Fazer, Var } from '../../declaracoes';
import { RetornoLexador, RetornoAvaliadorSintatico } from '../../interfaces/retornos';
import { AvaliadorSintaticoBase } from '../avaliador-sintatico-base';
import { SimboloInterface } from '../../interfaces';
export declare class AvaliadorSintaticoPortugolIpt extends AvaliadorSintaticoBase {
    primario(): Promise<Construto>;
    /**
     * Aparentemente, o Portugol IPT não suporta chamadas de função.
     * @returns O retorno da chamada de `primario()`.
     */
    chamar(): Promise<Construto>;
    atribuir(): Promise<Construto>;
    /**
     * A declaração escreva (ou escrever) do Portugol IPT é sempre na mesma linha.
     */
    declaracaoEscreva(): Promise<Escreva>;
    blocoEscopo(): Promise<Declaracao[]>;
    declaracaoSe(): Promise<Se>;
    declaracaoEnquanto(): Promise<Enquanto>;
    declaracaoPara(): Promise<Para>;
    declaracaoEscolha(): Escolha;
    declaracaoFazer(): Fazer;
    declaracaoInteiros(): Promise<Var[]>;
    /**
     * Análise de uma declaração `leia()`. No VisuAlg, `leia()` aceita 1..N argumentos.
     * @returns Uma declaração `Leia`.
     */
    expressaoLeia(): Promise<Leia>;
    corpoDaFuncao(tipo: string): Promise<FuncaoConstruto>;
    resolverDeclaracaoForaDeBloco(): Promise<Declaracao | Declaracao[]>;
    private validarSegmentoInicio;
    analisar(retornoLexador: RetornoLexador<SimboloInterface>, hashArquivo: number): Promise<RetornoAvaliadorSintatico<Declaracao>>;
}
//# sourceMappingURL=avaliador-sintatico-portugol-ipt.d.ts.map