import { AssetEvent } from '../events/AssetEvent';
import { AssetBase } from './AssetBase';
import { IAbstraction } from './IAbstraction';
import { IAbstractionPool } from './IAbstractionPool';
import { IAsset } from './IAsset';
/**
 *
 * @export class away.pool.AbstractionBase
 */
export declare class AbstractionBase extends AssetBase implements IAbstraction {
    private _poolId;
    protected _pool: WeakRef<IAbstractionPool> | IAbstractionPool;
    protected _useWeak: boolean;
    protected _asset: IAsset;
    protected _invalid: boolean;
    get asset(): IAsset;
    constructor();
    init(asset: IAsset, pool: IAbstractionPool, useWeak?: boolean): void;
    /**
     *
     */
    onClear(event: AssetEvent): void;
    /**
     *
     */
    onInvalidate(event: AssetEvent): void;
}
//# sourceMappingURL=AbstractionBase.d.ts.map