import { Model as ModelBase, DynamicRecord as DRBase } from "../DynamicRecord";
import { DynamicCollection } from "./DynamicCollection";
import { QueryOptions } from "../interfaces/DynamicRecord";
export declare class DynamicRecord<DataObject extends object> extends DRBase<DataObject> {
    private _databaseConnection;
    private _ready;
    constructor(options: any);
    closeConnection(): Promise<any>;
    findBy(query: object): Promise<ModelBase<DataObject>>;
    where(query: object, options?: QueryOptions): Promise<DynamicCollection<DataObject>>;
    all(): Promise<DynamicCollection<DataObject>>;
    first(options?: QueryOptions): Promise<ModelBase<DataObject> | DynamicCollection<DataObject>>;
    last(options?: QueryOptions): Promise<ModelBase<DataObject> | DynamicCollection<DataObject>>;
}
