import { EmitterMetadata, EmitterType } from "./emitter-metadata"; export declare function StateEmitter(): PropertyDecorator; export declare function StateEmitter(...propertyDecorators: PropertyDecorator[]): PropertyDecorator; export declare function StateEmitter(params: StateEmitter.DecoratorParams, ...propertyDecorators: PropertyDecorator[]): PropertyDecorator; export declare namespace StateEmitter { interface DecoratorParams extends EmitterMetadata.SubjectInfo.CoreDetails { propertyName?: EmitterType; } interface ProxyDecoratorParams { path: string; propertyName?: EmitterType; mergeUpdates?: boolean; } /** @PropertyDecoratorFactory */ function WithParams(params?: StateEmitter.DecoratorParams, ...propertyDecorators: PropertyDecorator[]): PropertyDecorator; function _ResolveProxyDecoratorParams(params: ProxyDecoratorParams | string): ProxyDecoratorParams; /** @PropertyDecoratorFactory */ function Alias(params: ProxyDecoratorParams | string, ...propertyDecorators: PropertyDecorator[]): PropertyDecorator; /** @PropertyDecoratorFactory */ function From(params: ProxyDecoratorParams | string, ...propertyDecorators: PropertyDecorator[]): PropertyDecorator; /** @PropertyDecoratorFactory */ function Merge(params: ProxyDecoratorParams | string, ...propertyDecorators: PropertyDecorator[]): PropertyDecorator; namespace Facade { function CreateSetter(type: EmitterType): (value: any) => void; function CreateGetter(type: EmitterType, initialValue?: any): () => any; } function Bootstrap(targetInstance: any): void; function CreateMetadata(target: any, type: EmitterType, metadata: EmitterMetadata.SubjectInfo): void; }