import type { ValueChangeCallback, ValueObserver, ValueObserverOptions } from '@furystack/utils';
import { ObservableValue } from '@furystack/utils';
/**
 * Class for managing observables and disposables for components, based on key-value maps
 */
export declare class ResourceManager implements AsyncDisposable {
    private readonly disposables;
    useDisposable<T extends Disposable | AsyncDisposable>(key: string, factory: () => T): T;
    readonly observers: Map<string, ValueObserver<any>>;
    useObservable: <T>(key: string, observable: ObservableValue<T>, onChange: ValueChangeCallback<T>, options?: ValueObserverOptions<T>) => [value: T, setValue: (newValue: T) => void];
    readonly stateObservers: Map<string, ObservableValue<any>>;
    useState: <T>(key: string, initialValue: T, callback: ValueChangeCallback<T>) => [value: T, setValue: (newValue: T) => void];
    [Symbol.asyncDispose](): Promise<void>;
}
//# sourceMappingURL=resource-manager.d.ts.map