/*!
* Copyright 2021 WPPConnect Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Stringable } from '../../types';
import { WritableProperties } from '../../util';
import { EventEmitter } from '../misc';
export type ModelProxy
= P & S & Readonly & {
readonly attributes: P & S;
readonly isState: true;
readonly mirrorMask: {
[key in keyof (P & S & D) as `change:${string & key}`]: number;
};
toJSON(): P;
serialize(): P;
};
export type ModelPropertiesContructor = Partial> & Required>>;
export interface ModelOptions {
_internalInitializationDoNotUse?: any;
collection?: any;
merge?: any;
parent?: any;
silent?: any;
}
/** @whatsapp 11290
* @whatsapp 411290 >= 2.2222.8
*/
export declare class Model extends EventEmitter {
static Proxy: string;
static idClass?: any;
static allowedIds?: any[];
parent?: any;
collection?: Collection;
proxyName: string;
constructor(proterties?: any, options?: any);
initialize(): void;
incObservers(e?: boolean): void;
decObservers(): void;
hasObservers(): boolean;
addChild(id: Stringable, context: {
[key: string]: any;
}): void;
get(attr: T): this[T];
set(...args: any): any;
hasUnfiredChanges(): boolean;
unset(ids: Stringable | Stringable[], t?: any): void;
clear(): void;
delete(): void;
reset(): void;
getDefault(attr: T): any;
static isIdType(e: any): boolean;
}