import { PdoI, PdoLogger } from './types/pdo';
import { PdoAttributes } from './types/pdo-attributes';
import { PdoDriverConstructor, PdoDriverI } from './types/pdo-driver';
import { PdoPoolOptions, RawPoolConnection } from './types/pdo-pool';
import { PdoPreparedStatementI } from './types/pdo-prepared-statement';
import { PdoStatementI } from './types/pdo-statement';
import { PdoTransactionI } from './types/pdo-transaction';
export declare class Pdo implements PdoI {
    protected driverName: string;
    protected driver: PdoDriverI;
    protected version: string | undefined;
    uuid: string;
    protected static logger: PdoLogger;
    protected static availableDrivers: {
        [key: string]: PdoDriverConstructor;
    };
    static setLogger(logger: PdoLogger): void;
    static getAvailableDrivers(): string[];
    static addDriver(driverName: string, driver: PdoDriverConstructor): void;
    constructor(driverName: string, options: any, poolOptions?: PdoPoolOptions, attributes?: PdoAttributes);
    beginTransaction(): Promise<PdoTransactionI>;
    disconnect(): Promise<void>;
    reconnect(): void;
    exec(sql: string): Promise<number>;
    prepare(sql: string): Promise<PdoPreparedStatementI>;
    query(sql: string): Promise<PdoStatementI>;
    getRawPoolConnection(): Promise<RawPoolConnection>;
    getRawDriverConnection<T>(): Promise<T>;
    getVersion(): Promise<string>;
    getAttribute(attribute: string): string | number;
    setAttribute(attribute: string, value: number | string): boolean;
}
export default Pdo;
