import type { View } from "./view"; import type { Class } from "./class"; import type { Attrs, Data, Dict } from "./types"; import type { ISignalable } from "./signaling"; import { Signal0, Signal } from "./signaling"; import type { Ref } from "./util/refs"; import * as p from "./properties"; import type { Property } from "./properties"; import type { Serializable, Serializer, ObjectRefRep } from "./serialization"; import { serialize } from "./serialization"; import type { Document } from "../document/document"; import type { Equatable, Comparator } from "./util/eq"; import { equals } from "./util/eq"; import type { Printable, Printer } from "./util/pretty"; import { pretty } from "./util/pretty"; import type { Cloneable } from "./util/cloneable"; import { clone, Cloner } from "./util/cloneable"; import * as kinds from "./kinds"; import type { PatchSet } from "./patching"; type AttrsLike = Dict; export declare namespace HasProps { type Attrs = p.AttrsOf; type Props = object; type SetOptions = { check_eq?: boolean; silent?: boolean; sync?: boolean; no_change?: boolean; }; } export interface HasProps extends HasProps.Attrs, ISignalable { constructor: Function & { __name__: string; __module__?: string; __qualified__: string; }; } export type PropertyGenerator = Generator; declare const HasProps_base: { new (): { connect(signal: Signal, slot: import("./signaling").Slot): boolean; disconnect(signal: Signal, slot: import("./signaling").Slot): boolean; }; }; export declare abstract class HasProps extends HasProps_base implements Equatable, Printable, Serializable, Cloneable { __view_type__: View; readonly id: string; get is_syncable(): boolean; get type(): string; get is_root(): boolean; static __name__: string; static __module__?: string; static get __qualified__(): string; static set __qualified__(qualified: string); get [Symbol.toStringTag](): string; /** @prototype */ default_view?: Class; /** @prototype */ _props: { [key: string]: { type: p.PropertyConstructor; default_value: (self: HasProps) => unknown | p.Unset; options: p.PropertyOptions; }; }; /** @prototype */ _mixins: [string, object][]; private static _fix_default; static define(obj: Partial> | ((types: typeof kinds) => Partial>)): void; static internal(obj: Partial> | ((types: typeof kinds) => Partial>)): void; static mixins<_T>(defs: Attrs | (Attrs | [string, Attrs])[]): void; static override(obj: Partial>): void; static override_options(obj: Partial>): void; static toString(): string; toString(): string; document: Document | null; readonly destroyed: Signal0; readonly change: Signal0; readonly transformchange: Signal0; readonly exprchange: Signal0; readonly streaming: Signal0; readonly patching: Signal; readonly properties: { [key: string]: Property; }; property(name: string): Property; /** * Gets values of all set properties. */ get attributes(): Attrs; /** * Gets values of all set and dirty (modified) properties. */ get dirty_attributes(): Attrs; [clone](cloner: Cloner): this; [equals](that: this, cmp: Comparator): boolean; [pretty](printer: Printer): string; [serialize](serializer: Serializer): ObjectRefRep; constructor(attrs?: { id: string; } | AttrsLike); initialize_props(vals: Dict): void; finalize(): void; initialize(): void; assert_initialized(): void; connect_signals(): void; disconnect_signals(): void; destroy(): void; clone(attrs?: Partial): this; private _watchers; protected _clear_watchers(): void; changed_for(obj: object): boolean; private _pending; private _changing; private _setv; setv(changed_attrs: Partial, options?: HasProps.SetOptions): void; ref(): Ref; [Symbol.iterator](): PropertyGenerator; syncable_properties(): PropertyGenerator; own_properties(): PropertyGenerator; static _value_record_references(value: unknown, refs: Set, options: { recursive: boolean; }): void; static references(value: unknown, options: { recursive: boolean; }): Set; references(): Set; protected _doc_attached(): void; protected _doc_detached(): void; attach_document(doc: Document): void; detach_document(): void; protected _push_changes(changes: [Property, unknown, unknown][], sync: boolean): void; on_change(properties: Property | Property[], fn: () => void): void; stream_to(prop: Property, new_data: Data, rollover?: number, { sync }?: { sync?: boolean; }): void; patch_to(prop: Property, patches: PatchSet, { sync }?: { sync?: boolean; }): void; } export {}; //# sourceMappingURL=has_props.d.ts.map