import * as refs from "./util/refs";
export declare class HasProps {
    type: string;
    id: string;
    _subtype?: string;
    static getters(specs: any): any[];
    static define(object: any): any[];
    static internal(object: any): any[];
    static mixin(...names: any[]): any;
    static mixins(names: any): any;
    static override(name_or_object: any, default_value: any): any[];
    toString(): string;
    constructor(attributes?: {}, options?: {});
    finalize(attributes: any, options: any): void;
    initialize(attributes: any, options: any): void;
    connect_signals(): void;
    disconnect_signals(): void;
    destroy(): any;
    clone(): any;
    _setv(attrs: any, options: any): this;
    setv(key: any, value: any, options: any): any[] | undefined;
    set(key: any, value: any, options: any): any[] | undefined;
    get(prop_name: any): any;
    getv(prop_name: any): any;
    ref(): refs.Ref;
    set_subtype(subtype: any): any;
    attribute_is_serializable(attr: any): boolean;
    serializable_attributes(): {};
    static _value_to_json(key: any, value: any, optional_parent_object: any): any;
    attributes_as_json(include_defaults?: boolean, value_to_json?: typeof HasProps._value_to_json): any;
    static _json_record_references(doc: any, v: any, result: any, recurse: any): any;
    static _value_record_references(v: any, result: any, recurse: any): any;
    _immediate_references(): {}[];
    references(): {}[];
    attach_document(doc: any): any;
    detach_document(): null;
    _tell_document_about_change(attr: any, old: any, new_: any, options: any): any;
    materialize_dataspecs(source: any): {};
}
