import LucidDataTable from './engines/lucid_datatable.js';
import DatabaseDataTable from './engines/database_datatable.js';
import ObjectDataTable from './engines/object_datatable.js';
import { DatabaseQueryBuilderContract, Dictionary } from '@adonisjs/lucid/types/querybuilder';
import { LucidModel, ModelQueryBuilderContract } from '@adonisjs/lucid/types/model';
import { DataTableAbstract } from './datatable_abstract.js';
export declare class Datatables {
    protected engines: Record<string, any>;
    constructor(engines: Record<string, any>);
    of<T extends DataTableAbstract>(...source: any): T;
    static lucid(source: ModelQueryBuilderContract<LucidModel, any>): LucidDataTable;
    static database(source: DatabaseQueryBuilderContract<Dictionary<any, string>>): DatabaseDataTable;
    static object(source: Record<string, any>[]): ObjectDataTable;
}
