import { Model } from "../model"; import { BaseField, SerialMeta } from "./base"; import { Observability } from "../mobx_internal"; import { collection } from "./collection"; import { reference, reference_id } from "./reference"; export interface FieldOptions { serial_name?: string; observable?: Observability; serialize?: boolean | ((netValue: any, meta: SerialMeta) => any); deserialize?: boolean | ((value: any, meta: SerialMeta) => any); } export declare class Field, R extends Model> extends BaseField<{}, FieldOptions, S> { constructor(ctx: ClassMemberDecoratorContext, options?: FieldOptions); decorate(value: any, context: ClassMemberDecoratorContext): any; serialize(inst: S, object: any, meta: SerialMeta): void; deserialize(inst: S, object: any, meta: SerialMeta): void; } export declare const field_: { (config: FieldOptions & { key?: string; }): (value: any, ctx: ClassAccessorDecoratorContext | ClassFieldDecoratorContext) => any; (value: any, ctx: ClassAccessorDecoratorContext, unknown> | ClassFieldDecoratorContext, unknown>): any; }; export declare const field: typeof field_ & { reference: typeof reference; ref: typeof reference; collection: typeof collection; reference_id: typeof reference_id; };