export type AssetHandleStatus = "ready" | "disposed";
export interface AssetHandleOptions<T> {
    readonly id: string;
    readonly url: string;
    readonly type: string;
    readonly value: T;
    readonly dispose?: (value: T) => void | Promise<void>;
}
export declare class AssetHandle<T> {
    readonly id: string;
    readonly url: string;
    readonly type: string;
    private readonly valueRef;
    private readonly disposer?;
    private retainCount;
    private currentStatus;
    constructor(options: AssetHandleOptions<T>);
    get status(): AssetHandleStatus;
    get refCount(): number;
    get disposed(): boolean;
    get value(): T;
    retain(): this;
    release(): Promise<number>;
    assertAlive(): void;
}
//# sourceMappingURL=AssetHandle.d.ts.map