import { ShortifyOptions, ShortifyResult } from "./services/shortener.service";
import { IUrl, DatabaseConfig } from "./interfaces/database.interface";
export declare class Shortify {
    private shortenerService;
    private dbAdapter;
    private isConnected;
    /**
     * Create a new Shortify instance
     * @param baseUrl - Base URL for shortened links
     * @param dbConfig - Database configuration
     */
    constructor(baseUrl: string, dbConfig: DatabaseConfig);
    /**
     * Create a new Shortify instance with MongoDB (backward compatibility)
     * @param baseUrl - Base URL for shortened links
     * @param mongoUri - MongoDB connection URI
     * @param options - Additional options for MongoDB connection
     */
    static createWithMongo(baseUrl: string, mongoUri: string, options?: {
        maxRetries?: number;
        retryDelay?: number;
        collectionName?: string;
    }): Shortify;
    /**
     * Connect to database
     */
    connect(): Promise<boolean>;
    /**
     * Disconnect from database
     */
    disconnect(): Promise<void>;
    /**
     * Check connection status
     */
    isReady(): boolean;
    /**
     * Shorten a URL
     */
    shorten(url: string, options?: Partial<ShortifyOptions>): Promise<ShortifyResult>;
    /**
     * Resolve a short URL ID to its original URL
     */
    resolve(urlId: string): Promise<string | null>;
    /**
     * Get statistics for a shortened URL
     */
    getStats(urlId: string): Promise<Partial<IUrl> | null>;
    /**
     * Delete a shortened URL
     */
    delete(urlId: string): Promise<boolean>;
}
export { ShortifyOptions, ShortifyResult, IUrl };
export { DatabaseConfig, IDatabaseAdapter, } from "./interfaces/database.interface";
export { DatabaseFactory } from "./factories/database.factory";
export default Shortify;
