import { Construto, FuncaoConstruto, Leia } from '../../construtos';
import { Bloco, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Fazer, Para, ParaCada, Se, Var } from '../../declaracoes';
import { RetornoLexador, SimboloInterface, RetornoAvaliadorSintatico } from '../../interfaces';
import { AvaliadorSintaticoBase } from '../avaliador-sintatico-base';
import { PilhaEscopos } from '../pilha-escopos';
export declare class AvaliadorSintaticoCalango extends AvaliadorSintaticoBase {
    pilhaEscopos: PilhaEscopos;
    constructor();
    protected atribuir(): Promise<Construto>;
    protected blocoEscopo(): Promise<Declaracao[]>;
    protected chamar(): Promise<Construto>;
    protected declaracaoEnquanto(): Promise<Enquanto>;
    protected declaracaoEscolha(): Escolha;
    protected declaracaoEscreva(): Promise<Escreva>;
    /**
     * Em Calango, este é o método `escreva()`.
     * @returns {EscrevaMesmaLinha} Uma declaracao de escrita na mesma linha.
     */
    protected declaracaoEscrevaMesmaLinha(): Promise<EscrevaMesmaLinha>;
    protected declaracaoInteiros(): Var[];
    protected declaracaoFazer(): Fazer;
    protected declaracaoPara(): Promise<Para | ParaCada>;
    protected resolverBloco(simbolosParada: string[]): Promise<Bloco>;
    protected declaracaoSe(): Promise<Se>;
    protected expressaoLeia(): Promise<Leia>;
    protected primario(): Promise<Construto>;
    resolverDeclaracaoForaDeBloco(): Promise<Declaracao | Declaracao[] | Construto | Construto[] | any>;
    protected corpoDaFuncao(tipo: string): Promise<FuncaoConstruto>;
    private validarSegmentoAlgoritmo;
    private validarSegmentoPrincipal;
    analisar(retornoLexador: RetornoLexador<SimboloInterface>, hashArquivo: number): Promise<RetornoAvaliadorSintatico<Declaracao>>;
}
//# sourceMappingURL=avaliador-sintatico-calango.d.ts.map