import { QueryBuilder } from './drivers/default/builders/queryBuilder'; import { ModelConstructor } from './contracts/modelConstructor'; import { AxiosResponse } from 'axios'; import { DefaultPersistedAttributes } from './types/defaultPersistedAttributes'; export declare abstract class Model, PersistedAttributes = Record | DefaultPersistedAttributes, Relations = Record, Key extends number | string = number | string, AllAttributes = Attributes & PersistedAttributes> { $attributes: AllAttributes; $relations: Relations; $response?: AxiosResponse; protected $keyName: string; constructor(attributes?: AllAttributes, relations?: Relations); abstract $resource(): string; static $query(this: ModelConstructor): QueryBuilder; $query(): QueryBuilder; $save(attributes?: Attributes): Promise; $destroy(force?: boolean): Promise; $getKeyName(): string; $setKeyName(keyName: string): this; $getKey(): Key; $setKey(key: Key): this; $setAttributes(attributes: AllAttributes): this; $setRelations(relations: Relations): this; $is(model: Model): boolean; protected $init(): void; }