import { IEnhancer, IEqualsComparer, IObservableArray, IMapEntries, IReadonlyMapEntries, IKeyValueMap, IObservableSetInitialValues, IObservableValue, ObservableMap, ObservableSet, Annotation, AnnotationsMap } from "../internal"; import { type DecoratorAnnotation } from "./decoratorannotation"; import type { ClassAccessorAndFieldDecorator } 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; 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 IObservableMapFactory { (): ObservableMap; (initialValues?: IMapEntries, options?: CreateObservableOptions): ObservableMap; (initialValues?: IReadonlyMapEntries, options?: CreateObservableOptions): ObservableMap; (initialValues?: IKeyValueMap, options?: CreateObservableOptions): ObservableMap; (initialValues?: Map, options?: CreateObservableOptions): ObservableMap; (initialValues: undefined, options?: CreateObservableOptions): ObservableMap; } export interface IObservableFactory extends Annotation, ClassAccessorAndFieldDecorator { (value: T[], options?: CreateObservableOptions): IObservableArray; (value: Set, options?: CreateObservableOptions): ObservableSet; (value: Map, options?: CreateObservableOptions): ObservableMap; (value: T, annotations?: AnnotationsMap, options?: CreateObservableOptions): T; box: IObservableValueFactory; array: (initialValues?: T[], options?: CreateObservableOptions) => IObservableArray; set: (initialValues?: IObservableSetInitialValues, options?: CreateObservableOptions) => ObservableSet; map: IObservableMapFactory; object: (props: T, annotations?: AnnotationsMap, options?: CreateObservableOptions) => T; } export declare const observableRef: DecoratorAnnotation; export declare const observableShallow: DecoratorAnnotation; export declare const observableDeep: DecoratorAnnotation; export declare const observableStruct: DecoratorAnnotation; export declare var observable: IObservableFactory;