import { Router } from "express";
import { IMetaClasse, ListaMetadataClasse, MetadataClasse } from "../metadata/classe.metadata";
import { ListaExpressMetodo } from "./metodo.express";
import { IParametriEstratti } from "./utility/utility";
import { ListaMetadataParametro } from "../metadata/parametro.metadata";
import { IHtml, IRaccoltaPercorsi } from "./metodo/utility";
export interface IExpressClasse extends IMetaClasse {
    id?: string;
    nome?: string;
    rotte?: Router;
    path?: string;
    percorsi?: IRaccoltaPercorsi;
    html?: IHtml[];
    LogGenerale?: any;
    cacheOptionMemory?: {
        durationSecondi: number;
    };
    Istanziatore?: (parametri: IParametriEstratti, listaParametri: ListaMetadataParametro) => Promise<any> | any;
}
export declare class ExpressClasse extends MetadataClasse implements IExpressClasse {
    listaMetodi: ListaExpressMetodo;
    id: string;
    nome: string;
    rotte: Router;
    path: string;
    percorsi: IRaccoltaPercorsi;
    html: IHtml[];
    LogGenerale?: any;
    cacheOptionMemory?: {
        durationSecondi: number;
    };
    Istanziatore?: (parametri: IParametriEstratti, listaParametri: ListaMetadataParametro) => Promise<any> | any;
    GetThis(): this;
    constructor(item: IExpressClasse);
    Mergia(item: ExpressClasse): void;
    SettaPathRoot_e_Global(item: string, percorsi: IRaccoltaPercorsi, app: any): void;
    ConfiguraListaRotteHTML(app: any, pathGlobal: string): void;
}
export declare class ListaExpressClasse extends ListaMetadataClasse {
    constructor();
    Mergia(item: ListaExpressClasse): void;
    CercaSeNoAggiungi(item: ExpressClasse): ExpressClasse;
    Cerca(item: ExpressClasse): ExpressClasse | undefined;
    AggiungiElemento(item: ExpressClasse): ExpressClasse;
    ConfiguraListaRotteApplicazione(path: string, percorsi: IRaccoltaPercorsi, serverExpressDecorato: any): void;
}
