import { ICommentato, tipo } from "../utility";
import { IMeta, ListaMeta, Meta } from "../metadata";
export interface IMetaParametroBesa {
    nomeVariante?: string;
    tipo?: tipo;
    descrizione?: string;
    sommario?: string;
    obbligatorio?: boolean;
}
export interface IMetaParametro extends IMeta {
    /** tipo di dato da trattare valore, da ricordarsi che vi sara il controllo sul tipo con le modalita classiche di comparazione base gia presenti in js */
    tipo?: tipo;
    /** parametro che rappresenta la sua posizione, viene impostato automaticamente, è coninvolto nel nome del parametro nella rotta */
    indexParameter?: number;
    /** fondamentalmente è rappresentativo del parametro e sara poi messo in documentazione,, questo sara il commento lungo presente nella descrizione. */
    descrizione?: string;
    /** altro compo che sara poi utile nella creazione della documentazione, questo sara il commento breve presente in intestazione*/
    sommario?: string;
    /**parametro che determina se obbligare la sua presenza, puo far terminare la chiamata con codice differenti da quelli previsti. */
    obbligatorio?: boolean;
}
export declare class MetadataParametro extends Meta implements IMetaParametro, ICommentato {
    tipo: tipo;
    indexParameter: number;
    descrizione: string;
    sommario: string;
    obbligatorio: boolean;
    constructor(item: IMetaParametro);
    Mergia(item: MetadataParametro): void;
    GetThis(): this;
}
export interface IListaMetadataParametro extends Array<IMetaParametro> {
    length: number;
}
export declare class ListaMetadataParametro extends ListaMeta {
    constructor(item?: ListaMetadataParametro);
    Mergia(item: ListaMetadataParametro): void;
    CercaSeNoAggiungi(item: MetadataParametro): Meta;
    Cerca(item: MetadataParametro): MetadataParametro | undefined;
    AggiungiElemento(item: MetadataParametro): Meta;
}
