import { IEnhancer, IEqualsComparer, IObservableArray, IObservableMapInitialValues, IObservableSetInitialValues, IObservableValue, ObservableMap, ObservableSet, Annotation, AnnotationsMap } from "../internal"; import type { ClassAccessorDecorator, ClassFieldDecorator } from "../types/decorator_fills"; export declare const OBSERVABLE = "observable"; export declare const OBSERVABLE_REF = "observable.ref"; export declare const OBSERVABLE_SHALLOW = "observable.shallow"; export declare const OBSERVABLE_STRUCT = "observable.struct"; export type CreateObservableOptions = { name?: string; equals?: IEqualsComparer; deep?: boolean; defaultDecorator?: Annotation; proxy?: boolean; autoBind?: boolean; }; export declare const defaultCreateObservableOptions: CreateObservableOptions; export declare function asCreateObservableOptions(thing: any): CreateObservableOptions; export declare function getEnhancerFromOptions(options: CreateObservableOptions): IEnhancer; export declare function getAnnotationFromOptions(options?: CreateObservableOptions): Annotation | undefined; export declare function getEnhancerFromAnnotation(annotation?: Annotation): IEnhancer; export interface IObservableValueFactory { (value: T, options?: CreateObservableOptions): IObservableValue; (value?: T, options?: CreateObservableOptions): IObservableValue; } export interface IObservableFactory extends Annotation, PropertyDecorator, ClassAccessorDecorator, ClassFieldDecorator { (value: T[], options?: CreateObservableOptions): IObservableArray; (value: Set, options?: CreateObservableOptions): ObservableSet; (value: Map, options?: CreateObservableOptions): ObservableMap; (value: T, decorators?: AnnotationsMap, options?: CreateObservableOptions): T; box: IObservableValueFactory; array: (initialValues?: T[], options?: CreateObservableOptions) => IObservableArray; set: (initialValues?: IObservableSetInitialValues, options?: CreateObservableOptions) => ObservableSet; map: (initialValues?: IObservableMapInitialValues, options?: CreateObservableOptions) => ObservableMap; object: (props: T, decorators?: AnnotationsMap, options?: CreateObservableOptions) => T; /** * Decorator that creates an observable that only observes the references, but doesn't try to turn the assigned value into an observable.ts. */ ref: Annotation & PropertyDecorator & ClassAccessorDecorator & ClassFieldDecorator; /** * Decorator that creates an observable converts its value (objects, maps or arrays) into a shallow observable structure */ shallow: Annotation & PropertyDecorator & ClassAccessorDecorator & ClassFieldDecorator; deep: Annotation & PropertyDecorator & ClassAccessorDecorator & ClassFieldDecorator; struct: Annotation & PropertyDecorator & ClassAccessorDecorator & ClassFieldDecorator; } export declare var observable: IObservableFactory;