import { Meta, IMeta, ListaMeta } from "../metadata";
import { ListaMetadataMetodo } from "./metodo.metadata";
import { ListaMetadataProprieta } from "./proprieta.metadata";
export interface IMetaClasseBase {
    nomeOriginale?: string;
    nomeVariante?: string;
    listaMetodi?: ListaMetadataMetodo;
}
/**
 * istanzia la meta classe
 * @param nomeOriginale : si puo tralasciare
 * @param nomeVariante : si puo tralasciare
 * @param listaMetodi : da toccare con cura
 * @param listaProprieta : da toccare con cura
 */
export interface IMetaClasse extends IMeta {
    nomeOriginale?: string;
    nomeVariante?: string;
    listaMetodi?: ListaMetadataMetodo;
    listaProprieta?: ListaMetadataProprieta;
}
export declare class MetadataClasse extends Meta implements IMetaClasse {
    listaMetodi: ListaMetadataMetodo;
    listaProprieta: ListaMetadataProprieta;
    constructor(item: IMetaClasse);
    Mergia(item: MetadataClasse): void;
    GetThis(): this;
}
export declare class ListaMetadataClasse extends ListaMeta {
    constructor(item?: ListaMetadataClasse);
    Mergia(item: ListaMetadataClasse): void;
    CercaSeNoAggiungi(item: MetadataClasse): MetadataClasse;
    Cerca(item: MetadataClasse): MetadataClasse | undefined;
    AggiungiElemento(item: MetadataClasse): MetadataClasse;
}
