import { EventEmitter } from "events";
import { IDatabaseAdapter, IUrl, PostgresConfig } from "../interfaces/database.interface";
export declare class PostgresAdapter extends EventEmitter implements IDatabaseAdapter {
    private pool;
    private config;
    private tableName;
    private isConnectedFlag;
    constructor(config: PostgresConfig);
    connect(): Promise<boolean>;
    createTables(): Promise<void>;
    disconnect(): Promise<void>;
    isConnected(): boolean;
    createUrl(url: Omit<IUrl, "createdAt">): Promise<IUrl>;
    findUrlByUrlId(urlId: string): Promise<IUrl | null>;
    findUrlByOriginalUrl(originalUrl: string): Promise<IUrl | null>;
    updateUrlClicks(urlId: string, clicks: number): Promise<void>;
    deleteUrl(urlId: string): Promise<boolean>;
}
