import { VisitanteComumInterface, SimboloInterface, ParametroInterface } from '../interfaces';
import { Declaracao } from './declaracao';
import { PropriedadeClasse } from './propriedade-classe';
/**
 * Assinatura de um método em uma declaração de interface.
 * Contém apenas nome e parâmetros — sem corpo.
 */
export declare class AssinaturaMetodo {
    nome: SimboloInterface;
    parametros: ParametroInterface[];
    tipoRetorno?: string;
    constructor(nome: SimboloInterface, parametros?: ParametroInterface[], tipoRetorno?: string);
}
/**
 * Declaração de uma interface.
 * Define um contrato de métodos e propriedades que as classes implementadoras devem respeitar.
 * A verificação é feita em tempo de análise sintática (parse-time), não em tempo de execução.
 */
export declare class InterfaceDeclaracao extends Declaracao {
    simbolo: SimboloInterface;
    metodos: AssinaturaMetodo[];
    propriedades: PropriedadeClasse[];
    constructor(simbolo: SimboloInterface, metodos?: AssinaturaMetodo[], propriedades?: PropriedadeClasse[]);
    aceitar(visitante: VisitanteComumInterface): Promise<any>;
    paraTexto(): string;
}
//# sourceMappingURL=interface.d.ts.map