import { Client } from "pg";
import { ListaPostgresClasse } from "./classe.postgres";
import { Role, User } from "./role";
export interface IConnectionOption {
    user?: string | undefined;
    database?: string | undefined;
    port: number;
    host: string;
    password?: string | undefined;
}
export interface IReturnQueryControllata {
    risultato?: string;
    errore?: {
        query: string;
        errore: string;
    };
    index: number;
}
export declare function EseguiQueryControllata(client: Client, query: string): Promise<IReturnQueryControllata>;
export interface ISetInizializzaORM {
    /**
     * se noin settato o se impostato a true, comportera l'eliminazione preventiva di tutto il database e la pulizia di ruoli ecc,
     * che inevitabilmente cancellera ogni dato.
     */
    dropAllTable?: boolean;
    /**
     * registra qui i tuoi ruoli
     */
    listaRuoli?: Role[];
    /**
     * registra qui i tuoi user
     */
    listaUser?: User[];
}
export declare class MainPostgres {
    listaRuoli: Role[];
    listaUser: User[];
    elencoQuery: string[];
    listaClassi: ListaPostgresClasse;
    constructor();
    InizializzaORM(item?: ISetInizializzaORM): string;
    IstanziaORM(client: Client): Promise<void>;
    IstanziaTutto(client: Client): Promise<void>;
    EseguiListaQuery(clientConnection: IConnectionOption, querys: string[]): Promise<IReturnQueryControllata[]>;
    private InizializzaRuoli;
    private InizializzaRuoliGrantGenerale;
    private InizializzaUser;
    private InizializzaUserGrantGenerale;
    private CostruisciRuoli;
    EseguiQueryControllata(clientConnection: IConnectionOption, querys: string[]): Promise<IReturnQueryControllata[]>;
    ScriviFile(pathDoveScrivereFile: string): string;
}
