import { IExpressClasse } from "../express/classe.express";
import { IHtml } from "../express/metodo/utility";
import { IParametriEstratti } from "../express/utility/utility";
import { IMetaClasse } from "../metadata/classe.metadata";
import { ListaMetadataParametro } from "../metadata/parametro.metadata";
import { IPostgresClasse } from "../postgres/classe.postgres";
import { IGrant } from "../postgres/grant";
import { ListaPolicy } from "../postgres/policy";
import { TypeDecoratoreMetodo } from "./metodo.decoratore";
export declare type TypeDecoratoreClasseSmall = {
    nomeVariante?: string;
    itemExpressClasse?: {
        id?: string;
        nome?: string;
        path?: string;
        html?: IHtml[];
        LogGenerale?: any;
        cacheOptionMemory?: {
            durationSecondi: number;
        };
        Istanziatore?: (parametri: IParametriEstratti, listaParametri: ListaMetadataParametro) => Promise<any> | any;
    };
    itemPostgresClasse?: {
        queryPerVista?: string;
        like?: string;
        estende?: string;
        abilitaCreatedAt?: boolean;
        abilitaUpdatedAt?: boolean;
        abilitaDeletedAt?: boolean;
        creaId?: boolean;
        listaPolicy?: ListaPolicy;
        grants?: IGrant[];
        multiUnique?: {
            colonneDiRiferimento: string[];
        }[];
    };
    itemListaMetodi?: {
        nomeMetodo: string;
        decoratore: TypeDecoratoreMetodo;
    }[];
};
export declare function decoratoreClasseSmall(item?: TypeDecoratoreClasseSmall): any;
export declare type DecoratoreMetodoLista = {
    nomeMetodo: string;
    decoratore: TypeDecoratoreMetodo;
};
export declare type TypeDecoratoreClasse = {
    itemMetaClasse?: IMetaClasse;
    itemExpressClasse?: IExpressClasse;
    itemPostgresClasse?: IPostgresClasse;
    itemListaMetodi?: DecoratoreMetodoLista[];
};
export declare function decoratoreClasse(item?: TypeDecoratoreClasse): any;
export declare function DecoratoreClasse(ctr: any, item?: TypeDecoratoreClasse): void;
