import type { AbstractMixable, AnyRecord, Model } from '../Contracts';
declare const _default: <T extends AbstractMixable<Model> = AbstractMixable<Model>>(Parent: T) => (abstract new (...args: import("../Contracts").Args) => {
    /**
     * The model's attributes.
     */
    guarded: string[];
    /**
     * Get all of the model attributes.
     */
    getAttributes(): AnyRecord;
    setAttribute(key: string, value: import("../Contracts").AnyValue): Model;
    getAttribute<T_1 = undefined>(key: string): T_1;
    getKey(): import("../Contracts").PrimaryKey;
    getKeyName(): string;
}) & T;
export default _default;
