import { FetchRequest, Filter, IModel, JSONObject, Meta, ValidateParams } from '../util/types'; export declare class Model implements IModel { #private; static checker: import("ts-interface-checker").ICheckerSuite; [x: string]: any; meta: Meta; parent?: IModel; expand: number; constructor(type: string, expand?: number, version?: string); id(): string; getType(): string; getVersion(): string; url(): string; path(): string; getClass(): string; protected usePutForUpdate(): boolean; removeChild(_: IModel): void; getAttributes(): string[]; addChildrenToStore(): void; setParent(parent?: IModel): void; getParent(): IModel | undefined; preserve(): void; restore(): void; static getMetaFilterResult(_filter?: Filter): string; protected validate(name: string, params: ValidateParams): void; getUrl(): string; _create(params?: JSONObject): Promise; create(params?: JSONObject): Promise; update(customKeys?: string[]): Promise; loadAllChildren(json: JSONObject | null, reloadAll?: boolean): Promise; reloadAndParse(reloadAll?: boolean, defaultExpand?: number): Promise; reload(reloadAll?: boolean, defaultExpand?: number): Promise; delete(): Promise; parse(json: JSONObject): boolean; parseChild(json: JSONObject): boolean; toJSON(customKeys?: string[]): JSONObject; static fetch: (params: FetchRequest) => Promise; static fromArray(this: new () => T, json: JSONObject[], parent?: IModel): (T | string)[]; static validateMethod(type: string | undefined, name: string, params: ValidateParams, isStatic?: boolean): void; protected static generateOptions(params?: JSONObject): JSONObject; }