export interface ComputedOption {
    /** suspend compute value if it is not observed */
    lazy: boolean;
}
export interface ComputedRef<T> {
    enumerable?: boolean;
    configurable?: boolean;
    get?: () => T;
    set?: (value: any) => void;
    dispose?: () => void;
}
/**
 * decorator @computed, computed(() => {}), handle computed value.
 */
export declare function computed(target: object, property: string, descriptor?: PropertyDescriptor): any;
export declare function computed(options?: Partial<ComputedOption>): (target: object, property: string, descriptor?: PropertyDescriptor) => any;
export declare function computed<T>(computeRunner: () => T, options?: Partial<ComputedOption>): ComputedRef<T>;
