import { ProgramData } from '../image/ProgramData';
import { Stage } from '../Stage';
/**
 * @class away.pool.ProgramDataPool
 */
export declare class ProgramDataPool {
    private _pool;
    private _disposedPool;
    private _stage;
    /**
     * Time to alive Program data after disposing, sec
     */
    keepAlive: number;
    /**
     * //TODO
     *
     * @param {Stage} stage
     */
    constructor(stage: Stage);
    /**
     * Collect `disposed` progs and dispose it finaly
     */
    collect(): void;
    /**
     * //TODO
     *
     * @param materialOwner
     * @returns ITexture
     */
    getItem(vertexString: string, fragmentString: string): ProgramData;
    /**
     * //TODO
     *
     * @param materialOwner
     */
    disposeItem(key: string): void;
}
//# sourceMappingURL=ProgramDataPool.d.ts.map