import { BaseModel } from './base';
import { ObjectState } from './object-state';
export declare abstract class ResourceModel<T extends BaseModel> implements BaseModel {
    Id: string;
    CreatedAt: Date;
    readonly UpdatedAt: Date;
    readonly TenantId: string;
    readonly Code: string;
    readonly ServiceName: string;
    readonly id: string;
    readonly DataState: ObjectState;
    constructor(model?: Partial<T>);
    /**
     * Override to set custom unique identifier
     * E.g this.Name + this.CreatedAt.toString()
     * @returns unique string identifier for this resource
     */
    protected _key(): string;
    toJson(): any;
}
