import { ObservableSymbol } from './core';
import { Notifier } from './notifier';
export interface Notifiable {
    [ObservableSymbol.Notifier]: Notifier;
}
export declare namespace Notifiable {
    const token: unique symbol;
    function is(target: any): target is Notifiable;
    function getNotifier(target: Notifiable): Notifier;
    function tryGetNotifier(target: any): Notifier | undefined;
    function set<T extends object>(target: T, value: Notifiable): void;
    function get<T extends object>(target: T): T & Notifiable;
    function canBeNotifiable(value: any): boolean;
    function transform<T = any>(target: T): T | (T & Notifiable);
    function transformArray<T extends Array<any>>(target: T): T & Notifiable;
    function transformPlainObject<T extends object>(target: T): T & Notifiable;
    function transformMap<T extends Map<any, any>>(target: T): T & Notifiable;
}
//# sourceMappingURL=notifiable.d.ts.map