import { EmitterMetadata, EmitterType } from "./metadata";
/** @deprecated */
export declare function StateEmitter(): PropertyDecorator;
/** @deprecated */
export declare function StateEmitter(...propertyDecorators: PropertyDecorator[]): PropertyDecorator;
/** @deprecated */
export declare function StateEmitter(params: StateEmitter.DecoratorParams, ...propertyDecorators: PropertyDecorator[]): PropertyDecorator;
/** @deprecated */
export declare namespace StateEmitter {
    interface DecoratorParams extends EmitterMetadata.SubjectInfo.CoreDetails {
        propertyName?: EmitterType;
    }
    interface ProxyDecoratorParams {
        path: string;
        propertyName?: EmitterType;
        mergeUpdates?: boolean;
        readOnly?: boolean;
        writeOnly?: boolean;
        unmanaged?: boolean;
    }
    interface SelfProxyDecoratorParams {
        propertyName?: EmitterType;
        readOnly?: boolean;
        writeOnly?: boolean;
        unmanaged?: 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;
    /** @PropertyDecoratorFactory */
    function AliasSelf(params?: SelfProxyDecoratorParams, ...propertyDecorators: PropertyDecorator[]): PropertyDecorator;
    /** @PropertyDecoratorFactory */
    function FromSelf(params?: SelfProxyDecoratorParams, ...propertyDecorators: PropertyDecorator[]): PropertyDecorator;
    /** @PropertyDecoratorFactory */
    function MergeSelf(params?: SelfProxyDecoratorParams, ...propertyDecorators: PropertyDecorator[]): PropertyDecorator;
}
