import { Model as M, Transaction, QueryBuilder } from 'objection';
import { IValidator, ValidationErrorCollection } from '../validation';
declare type EagerRelationExpression = {
    [key: string]: EagerRelationExpression | boolean;
};
export declare class Model extends M implements IValidator {
    static modelName(): string;
    static fillable(): string[];
    static eager(): EagerRelationExpression | string | false;
    static load(trx?: Transaction): QueryBuilder<Model>;
    static resolveTransaction(trx?: Transaction): Transaction | undefined;
    static query(trx?: Transaction): any;
    static relatedQuery(relationName: any, trx?: Transaction): any;
    $query(trx?: Transaction): import("objection").SingleQueryBuilder<import("objection").QueryBuilderType<this>>;
    $relatedQuery(relationName: any, trx?: Transaction): import("objection").RelatedQueryBuilder<this[any]>;
    save(): Promise<Model>;
    delete(): Promise<Number | string>;
    validate(): Promise<ValidationErrorCollection>;
    validateSync(): ValidationErrorCollection;
}
export {};
